Подтвердить что ты не робот

Что такое философия ExtJS? Одностраничное приложение?

Мне нужно написать мой следующий проект, используя ExtJs. Это хорошая Javascript lib, но я не совсем понимаю ее идею. Возьмите страницу документов, например.

Должен ли я писать свои веб-приложения с помощью extjs? Одна страница, которая никогда не должна обновляться, и все, что делает AJAX?

Как отлаживать такие приложения, если вы попадаете в нужное место может занять много "щелчков" и работать с ним. Вы не можете исправить ошибку и нажать обновление в браузере, чтобы увидеть Результаты.

Любые предложения?

4b9b3361

Ответ 1

Должен ли я писать свои веб-приложения с помощью ExtJS? Одна страница, которая никогда не должна обновляться, и все, что делается AJAX?

Вам не нужно писать ваши приложения, как документация ExtJS. Если вы посмотрите на примеры страниц для ExtJS, вы увидите много HTML, смешанных с виджетами Ext на отдельных страницах. В моей работе у меня есть два разных приложения, в которых я использую ExtJS, один из них - это унаследованный сайт, на котором я использую виджеты для создания страниц, а другой - полнофункциональное веб-приложение, использующее ничего, кроме ExtJS для интерфейса. Я определенно предпочитаю последний, как только я его повесил, но кривая обучения довольно крутая.

Как вы отлаживаете такие приложения, если попадание в нужное место может занять много "щелчков" и работать с ним.

Ключом здесь является модуляция вашего приложения. Постройте каждый компонент по отдельности и протестируйте его в вакууме. Не заставляйте думать, что это должен быть какой-то гигантский файл JavaScript который содержит всю заявку. В большинстве веб-приложений источник имел десятки или более файлов JavaScript, которые объединены только для целей развертывания.

A для тестирования и отладки должен быть firebug. Он позволяет вам проверять запросы Ajax, отлаживать JavaScript вживую и многое другое.

Вот серия статей о создании больших приложений с использованием ExtJS, это довольно приличное чтение с большим количеством хорошей информации.

Создание примера приложения в ExtJS 4 Part1 Part2 Part3

Для ExtJS 3.3 и ниже Part1 Part2 Part3

Я думаю, что это нормально использовать ExtJS в любом случае, если вы только начинаете, может возникнуть больше смысла делать то, с чем вам больше всего нравится, и добавить некоторую "пряжку" ExtJS по пути. Тем не менее, как только вы начнете использовать его для создания приложений с одной страницей, и у вас есть обратная выходная информация, кроме JSON, вы, вероятно, никогда не оглянетесь на старый способ, которым вы занимались веб-приложениями.

Ответ 2

Вы можете делать то, что делают современные приложения на базе AJAX, и использовать хэш URL-адресов для глубокой привязки вашего приложения.

Gmail - отличный пример того, как это работает. Чтобы попасть в мой почтовый ящик, я перехожу к:

https://mail.google.com/mail/?shva=1#inbox

Чтобы перейти к моему менеджеру контактов, я просматриваю:

https://mail.google.com/mail/?shva=1#contacts

Обе эти "страницы" находятся на одной странице, и навигация всегда перенаправляет меня на другую страницу, пока я использую приложение. Изменяется хеш.

Когда страница загружается, вам нужно проверить window.location.hash и использовать ее для обновления состояния вашего приложения.

Ответ 3

Не одностраничное, но мало выгружаемое приложение

Я участвовал в сложном проекте, который был построен на:

  • Asp.net 3.5
  • Веб-службы WCF
  • ExtJS 2.1
  • .netTiers(с CodeSmith) для DAL + DAO
  • SQL 2005 + OLAP Cubes (некоторые из них не обходились в приложении, потому что мы использовали некоторые сторонние элементы управления, частично поддерживающие UpdatePanels, и эта вещь сама по себе базовая обработка нашего приложения)
  • пользовательский внешний вид над существующим ExtJS - это была самая сложная часть экзекьютива ExtJS, поэтому я предлагаю вам придерживаться одной из предоставленных тем

Мы не делали актуального одностраничного приложения, но верно, что количество страниц значительно сократилось. Каждая область работы в приложении обычно была отдельной страницей. Вся обработка интерфейса была либо выполнена на клиенте с использованием ExtJS, либо на стороне сервера в службах WCF, которые предоставили данные клиентскому интерфейсу ExtJS.

Он отлично работал.

Я бы, наверное, сегодня изменил одно: переход из Asp.net + WCF в Asp.net MVC. Он больше подходит для такого сценария.

Что касается отладки, мы использовали Firebug (плагин Firefox), как и любой другой разработчик.

Но использование библиотеки ExtJS имело большой успех. Это позволило легко создать настольное, подобное тяжелым веб-приложениям. Это отличная унифицированная библиотека для разработки любого профессионального веб-приложения для интрасети. С jQuery и плагинами вы всегда остаетесь наедине с различными причудами тех плагинов, которые предоставляет сообщество. ExtJS очень унифицирован в этом отношении и обеспечивает действительно красивый внешний вид и ощущение из коробки.

Ответ 4

Я думаю, что идея состоит в том, чтобы каким-то образом соответствовать ощущениям приложений на рабочем столе в веб-среде, что означает, что почти все работает с Ajax.

Что касается отладки, firebug - ваш друг. Но это не должно отличаться от отладки настольного приложения, где также может быть задействовано много щелчков, чтобы получить ошибку.

Ответ 5

Вы можете использовать что-то на слушателеHashChange, вместе с тем, что я называю "закрывающим" форматом для загрузки экрана extjs. Я написал статью о том, как создать одностраничное приложение extjs.

Ответ 6

В терминах тестирования ExtJs...

Вот инструмент тестирования, который проверяет компоненты ExtJs (этот инструмент был создан с помощью ExtJs!)

Инструмент тестирования Siesta для тестирования ExtJs

Я лично не использовал это сам, но я посмотрел демонстрационное видео, и это выглядит очень мило!

Возможно, члены сообщества могут знать любые альтернативные инструменты, которые специально проверяют ExtJs?

PS: Я никоим образом не связан с Sencha (ExtJs) или Bryntum (Siesta). Я использую ExtJs на уровне клиента.

Ответ 7

Вам не нужно так писать. Иногда это выглядит красиво так и быстрее (нет обновлений для новых страниц).

Вы можете делать автоматические записи для javascript, которые делают ваши вещи с помощью некоторых автоматических средств тестирования или сами пишут эти вещи. Обычно отладка всей страницы не такая хорошая идея. Когда он строится модульно, это проще. Изолируйте проблему, и это проще.

Также рассмотрите возможность использования firebug для отладки, это может помочь вам.

Предложение: Я зависим от того, что вы делаете. Если вы делаете интерактивную страницу, тогда было бы неплохо сделать это именно так. Это быстрее, и ajax-запросы могут быть более низкой нагрузкой на сервер. С другой стороны, для этого потребуется больше времени.

Ответ 8

Я использую ASP.Net MVC с ExtJS. Это не одностраничное приложение, но оно близко, оно похоже на одностраничное приложение.

а также приложение для веб-форм с сотнями страниц, мы применили некоторые виджеты ExtJS UI в этом приложении, используя множество IFrames, он по-прежнему работает и отлично выглядит. Но мне не нравится использовать модель веб-форм и стараюсь избегать ее как можно больше.

ИМХО;

  • платформа asp.net mvc будет лучше чем платформа веб-форм.
  • Контроллеры очень хорошо подходят для обработки действий.
  • Частицы полезны для генерации html-контента (строительные леса помогают здесь много)

ExtJS

  • для навигации,
  • ,
  • поиск,
  • редактирование контента,
  • уведомление,
  • в значительной степени для всего остального...

общий ExtJS - отличная инфраструктура.

Ответ 9

В нашем приложении мы создали собственный класс страниц, который обрабатывает переключение между "страницами". Вся страница состоит из контейнера ExtJS, который возвращает ваши классы, и мы сохраняем историю, устанавливая значения #hash в конце нашего URL.

Используя этот подход, вы загружаете свою библиотеку ExtJS один раз вместе со всеми активами, которые приносят огромные дивиденды за производительность, а также поддерживают ваше приложение.