Чем может помочь что-то вроде Sproutcore / Qooxdoo? - PullRequest
4 голосов
/ 29 июня 2010

Я изучаю Python и создаю свое первое веб-приложение. Я изучал django и начинаю думать о том, как работать на стороне клиента. Я хочу, чтобы это был web 2.0-ish, и мне понадобятся некоторые функции AJAX / javascript для отображения списков из базы данных, а также классные вещи, такие как выбор даты, автозаполнение и т. Д.

Кажется, html / css / javascript (особенно jquery) является наиболее популярным вариантом. Будучи новичком, я заинтригован фреймворками, такими как qooxdoo и sproutcore, но не совсем понимаю, как они работают. Например:

  1. Могу ли я легко повторно использовать код из одного приложения в другое?
  2. Можете ли вы легко иметь одну страницу статических страниц?
  3. Это всего лишь одна страница, вроде gmail? Имеет ли это значение?
  4. Это действительно проще, чем не использовать его? Я имею в виду, что кривая обучения для каркаса равна обучению html / css / javascript?
  5. Эти типы приложений загружаются медленнее, потому что у них много накладных расходов?

Или

Каковы плюсы / минусы использования / нет используя один из них?

Любой совет для начинающего приветствуется!

Ответы [ 2 ]

5 голосов
/ 30 июня 2010

Вот ответ с точки зрения qooxdoo:

Могу ли я легко повторно использовать код из одного приложения в другое?

Да, вы можете. Вы можете организовать свой код в «библиотеки», которые могут быть включены в несколько приложений. Но каждое приложение будет отдельным целым (думайте о нем как о двоичном файле со статически связанным кодом библиотеки), ручное копирование файлов .js не требуется.

Можете ли вы иметь одну страницу статичные страницы тоже легко?

Я не уверен, что вы имеете в виду здесь.

Являются ли они только одна страница, вроде gmail?

Да, вы создаете одностраничные приложения с помощью qooxdoo.

Это имеет значение? Это действительно любой проще чем не использовать? Я имею ввиду кривая обучения для структуры равно обучения html / css / javascript?

Это во многом зависит от вашего фона. Если вы хорошо разбираетесь в OO, возможно, даже имеете опыт работы с библиотекой интерфейсов OO, таких как Qt или Swing, выбор qooxdoo должен быть очень простым. В таком случае я бы сказал, что усилия по обучению меньше, чем по сравнению с html / css / javascript, поскольку вы в основном работаете с библиотекой классов OO, которая защищает основную технологию от вас. (Что хорошо. Например, правильно настроить кросс-браузерный CSS).

Эти типы приложений загружаются медленнее потому что у них много накладных расходов?

Я бы так сказал. Вы платите штраф за инфраструктуру. Но если вам нужен настоящий веб-интерфейс, он того стоит.

Каковы плюсы / минусы использования / нет используя один из них?

Как сказано в другом месте, это действительно зависит от того, чего вы хотите достичь. Из вашего вопроса я понимаю, что вы не просто хотите «отображать списки из базы данных», но вам нужен интерактивный пользовательский интерфейс с высокоуровневыми виджетами (выбор даты), кросс-браузерная обработка событий (автозаполнение) может быть, другие элементы управления, управление макетом и тому подобное. В таком случае я говорю, что плюсы перевешивают минусы.

Но я бы сказал, что это слишком большая инвестиция в одноразовый проект. И если вам просто нужно несколько представлений в списке, придерживайтесь шаблонов Django, возможно, добавьте немного Javascript.

4 голосов
/ 29 июня 2010

Вы должны иметь в виду, что T в HTML означает текст. HTML предназначен для показа документов. JavaScript добавил интерактивность к этим документам. Это было «извращенным» (в некотором смысле) до некоторой степени, когда JavaScript использовался для создания подобного настольному приложению опыта управления объектами DOM.

В настоящее время, если вы посмотрите на веб-приложения, есть три основные категории:

  1. веб-сайтов
    Такие приложения в основном представляют собой услуги доставки контента / документов. Вы можете просматривать, искать, редактировать и публиковать некоторые документы. это в основном это. stackoverflow является хорошим примером для этой категории.
  2. веб-интерфейсы
    Такие приложения представляют веб-интерфейс для приложения, которое фактически выполняется на сервере. Они действуют как интерфейс к бизнес-логике, которая работает на сервере. Приложения для онлайн-банкинга являются хорошим примером, или веб-интерфейсы для различных видов услуг. Классическая страница Google, в некотором смысле.
  3. RIAs
    Эти приложения полностью работают на клиенте. Они получают данные с сервера и предоставляют пользовательский интерфейс, который позволяет манипулировать этими данными прямо на стороне клиента и, возможно, отправлять ход / результат.

Конечно, есть приложения, которые нельзя отнести ни к одной из этих категорий.
Теперь для веб-сайтов очень важно создавать семантический, чистый и корректный HTML по ряду причин. SEO и доступность - самые важные из них.
Для веб-интерфейсов и RIA это не так. Здесь, на стороне клиента, самое важное - это удобство использования. Для веб-интерфейсов желательно избегать обновления всей страницы и максимально облегчать ввод данных пользователем. Для RIA это обязательно. Обе категории не используют HTML для представления документов, но для создания пользовательского интерфейса. Для веб-интерфейсов классические формы могут помочь, в зависимости от сложности пользовательского ввода, поэтому вы можете рассматривать их как веб-сайты или как RIA для этого рассмотрения.

В то время как веб-сайты используют HTML для представления фактических данных, CSS для определения их внешнего вида и JavaScript для добавления интерактивности, веб-интерфейсы и RIA используют объекты DOM для создания пользовательского интерфейса, CSS для оформления этого интерфейса и JavaScript для реализации бизнес-логики на стороне клиента.

Так что, хотя платформа, которую вы используете, одна и та же, вы действительно делаете что-то совершенно другое. Думайте об этом как текстовый режим. Символы на экране могут представлять текст или элементы графического интерфейса . (Я полагаю, что веб-интерфейсы будут командными приглашениями в этой аналогии: D).

Такие фреймворки, как qooxdoo и sproutcore, разработаны для облегчения создания RIA. Поскольку в этом подходе DOM используется не по назначению, они обеспечивают необходимую абстракцию для связи между UI-логикой и базовой DOM-манипуляцией. Они сводят на нет необходимость в HTML и CSS, потому что это не инструменты, предназначенные для создания интерактивных интерфейсов.

В зависимости от того, что вы собираетесь делать, вам придется выбрать подходящий инструмент.

...