Что такое философия ExtJS? Одностраничное приложение?
Мне нужно написать мой следующий проект, используя ExtJs.
Это хорошая Javascript lib, но я не совсем понимаю ее идею.
Возьмите страницу документов, например.
Должен ли я писать свои веб-приложения с помощью extjs?
Одна страница, которая никогда не должна обновляться,
и все, что делает AJAX?
Как отлаживать такие приложения, если вы попадаете в нужное место
может занять много "щелчков" и работать с ним.
Вы не можете исправить ошибку и нажать обновление в браузере, чтобы увидеть
Результаты.
Любые предложения?
Ответы
Ответ 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 один раз вместе со всеми активами, которые приносят огромные дивиденды за производительность, а также поддерживают ваше приложение.