Какую платформу вы бы порекомендовали для создания настольных приложений для Интернета?[закрыто]

StackOverflow https://stackoverflow.com/questions/148118

Вопрос

Недавно появилось несколько фреймворков для написания настольных веб-приложений.Например. SproutCore и Капучино.Есть ли у вас опыт их использования?Какое у вас впечатление?Я пропустил какую-то другую структуру?

я видел связанный вопросы на StackOverflow, но они генерируют в основном стандартные ответы, такие как «используйте jQuery, MochiKit, MooTools, Dojo или YUI».Хотя некоторые люди дают нестандартный ответы, похоже у них мало опыта с использованием это рамки.

Может ли кто-нибудь поделиться реальным опытом разработки дестоп-подобных приложений для браузера?

Это было полезно?

Решение

Из-за проблем со скоростью эти высокоуровневые фреймворки вызывают множество более крупных (например:нетривиальные) приложения, мы используем только простой jQuery.В наших тестах все высокоуровневые платформы выходили из строя в ситуациях, когда имеется много перетаскиваемых объектов или много целей перетаскивания, а также в ситуациях, когда на экране отображались длинные списки (с > 1000 записей).

Частично это связано с проблемами IE6 и IE7 (когда производительность внезапно начинает резко ухудшаться после того, как деревья DOM достигают определенной сложности), но частично это связано с накладными расходами, генерируемыми этими платформами.

Поэтому я бы не рекомендовал какие-либо фреймворки высокого уровня.Я бы рекомендовал использовать jQuery и напрямую работать с DOM.

Несколько советов по улучшению производительности:

  • Где, возможно, рендеринг HTML на сервере.
  • Держите HTML как можно проще.
  • Избегайте много элементов в дереве DOM.
  • Избегайте рекурсивной структуры стола (то есть внезапно останавливается, показывая их после относительно нескольких уровней гнездования).
  • Удалите невидимые элементы с дерева DOM.
  • Удалите вещи с дерева DOM, прежде чем менять их, а затем переосмыслить их, а не менять, пока они находятся в дереве.

Другие советы

На мой взгляд, «Капучино» — пример того, чего НЕ следует делать.Они внедрили еще один язык поверх JavaScript, что уже приводит к замедлению работы, в то время как разработчики браузеров уже активно борются с этим, и, что самое худшее, они вообще не полагаются на виджет браузера, нарушая все возможности навигации пользователя.Например, они реализовали собственную полосу прокрутки, главный недостаток которой заключается в том, что использование колеса мыши больше не работает!

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

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

Вот их пример страницы для среды рабочего стола: http://extjs.com/deploy/dev/examples/desktop/desktop.html

Apple демонстрирует, что sproutcore действительно работает, хотя трудно оценить, насколько хорошо он работает.В настоящее время я создаю веб-приложения с использованием собственного набора библиотек, дублирующего набор функций нашего программного пакета Windows (но адаптированного к веб-интерфейсу).До сих пор я избегал фреймворков, особенно по той причине, что не хотел раздувать их.Проблема с этим подходом в том, что я трачу слишком много времени на дублирование функциональности, которая уже есть во фреймворках, и чувствую, что со временем я приблизимся к чему-то, напоминающему эти фреймворки.

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

Проблема его масштабирования, очевидно, все еще актуальна, но, честно говоря, я считаю, что лучше использовать набор инструментов в ситуациях, когда масштаб не так важен, и возвращаться к базовому JavaScript только там, где это необходимо (преждевременная оптимизация является корнем всех проблем). зло).Extjs может работать поверх прототипа или jquery, поэтому этот подход определенно работоспособен.Избегание слишком большого количества контента в DOM обычно подразумевает загрузку и выгрузку по требованию.Например, существует стороннее расширение класса сетки extjs, которое позволяет прокручивать набор данных из миллиона строк, умело загружая и выгружая данные.

Вы можете рассмотреть возможность использования GWT-Ext (внизу используется Ext) может быть очень чистым решением, если вы собираетесь использовать Java.

Мне нравится qooxdoo, Хотя он использует ООП-подход JS, а не прототип, он представляет собой надежную структуру и имеет множество функций.

У меня нет опыта работы с SproutCore или Capuccino.Но предпринимались попытки использовать Dojo поверх Django для такого рода работы.Могу только сказать вам, что это медленно и глючно.

extjs может помочь. http://dev.extjs.com/deploy/dev/examples/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top