Вопрос

С возросшей мощью фреймворков JavaScript, таких как YUI, jQuery и Prototype, и инструментов отладки, таких как Firebug, создание приложения полностью на браузерном JavaScript выглядит отличным способом создания простых приложений, таких как головоломки и специализированные калькуляторы.

Есть ли в этом какой-либо недостаток, кроме раскрытия вашего исходного кода?Как вы должны обращаться с хранением данных для такого рода программ?

Редактировать:да, Gears и cookies можно использовать для локального хранения, но вы не сможете легко получить доступ к файлам и другим объектам, которые уже есть у пользователя.Вы также не можете сохранить данные в файл для пользователя, не попросив его вызвать какую-либо функцию браузера, такую как печать в формате PDF или сохранение страницы в виде файла.

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

Решение

Я написал несколько приложений на JS, включая электронную таблицу.

Обратная Сторона:

  • отличный язык
  • короткий цикл выполнения кода-review
  • Манипулирование DOM отлично подходит для дизайна пользовательского интерфейса
  • клиенты на каждом компьютере (и телефоне)

Обратная Сторона:

  • различия между браузерами (особенно IE)
  • масштабируемость базы кода (без встроенной поддержки пространств имен и классов)
  • нет хороших отладчиков (особенно, опять же, для IE)
  • производительность (несмотря на значительный прогресс, достигнутый с FireFox и Safari)
  • Вам также нужно написать какой-нибудь серверный код.

Итог:Дерзай.Я так и сделал.

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

Другим вариантом разработки простых настольных приложений или игр на JavaScript является Саманный ВОЗДУХ.Вы можете создать код своего приложения либо на HTML + JavaScript, либо с помощью Flash / Flex, либо комбинации того и другого.Преимущество этого приложения в том, что оно является кроссплатформенным (на самом деле кроссплатформенным для Linux, OS X и Windows.Не только Windows и OS X).

Черт возьми, возможно, это единственный раз в вашей карьере разработчика, когда вы можете написать веб-страницу, ориентированную ТОЛЬКО на ОДИН браузер.

Ядро ростка это полностью размещенный на JavaScript фреймворк приложения, заимствующий концепции, в частности, из Cocoa (например, KVO) и Ruby on Rails (например, использование генератора CLI для ваших моделей, представлений и контроллеров).Он включает в себя прототип, но поверх него создается множество элементов, таких как сложные элементы управления.Его Фото демо-версия, возможно, впечатляет (особенно в Safari 3.1).

Грег уже указал тебе на Шестеренки;кроме того, HTML 5 будет поставляться со стандартизированными средствами локального хранения.Safari 3.1 поставляется с реализацией, в которой у вас есть база данных SQLite для каждого сайта с максимальными размерами, устанавливаемыми пользователем, а также встроенный браузер баз данных с SQL-запросами.К сожалению, пройдет немало времени, прежде чем мы сможем ожидать широкой поддержки браузеров.До тех пор Gears действительно является альтернативой (но не для Safari… пока!).Для упрощения хранения, конечно, всегда есть файлы cookie.

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

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

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

Не совсем на стороне клиента, но ладно.

Нигилогичный (не мой сайт) многое делает с помощью Javascript.У них даже есть несколько Игры это они сделали на Javascript.

Я также видел аккуратную игру, похожую на roguelike, сделанную на Javascript.К сожалению, я не могу вспомнить, как это называлось...

Если вы хотите написать отдельное приложение на JavaScript, посмотрите на XULRunner ( русификатор ).Это то, на чем построен Firefox, но он также построен так, что вы можете распространять его как среду выполнения приложения.Вы напишете часть интерфейса на JavaScript и будете использовать JavaScript для своего кода.

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

Я делал простые приложения, подобные этому, для таких вещей, как Решатель судоку.

Вы можете столкнуться с проблемами производительности, учитывая, что вы полностью во власти клиентского интерпретатора Javascript.Gears был бы хорошим способом хранения данных, но я не думаю, что он настолько сильно проник на рынок.Вы могли бы просто использовать файлы cookie, если вы не придирчивы к такого рода вещам.

Я согласен со Скоттуном, Adobe AIR - это здорово.На данный момент я действительно создал только один действительно хороший (имхо) виджет, но я сделал это с помощью jQuery и Prototype.js, которые были такими замечательными, потому что мне не нужно было изучать совершенно новую модель событий.Adobe AIR действительно хорош, функция memory foot print не так уж плоха, обновление до новой версии встроено в AIR, так что оно происходит почти автоматически, и, что лучше всего, оно кроссплатформенное ... у них даже есть альфа-версия для Linux, но она уже довольно хорошо работает на моем Eee.

Автономные игры в GWT:

  1. http://gpokr.com/
  2. http://kdice.com/

В отношении сохранения файлов из приложения javascript:

Я действительно в восторге от возможностей клиентских приложений.Во Flash 10 появилась возможность создавать файлы для сохранения прямо в браузере.Я подумал, что это супер круто, поэтому я создал компонент javascript + flash, чтобы обернуть функцию сохранения.Прямо сейчас он работает только для создания текстовых файлов (vcard, ical, xml, html, css и т.д.).

  1. Домашняя страница Downloadify
  2. Исходный код и документация на Github
  3. Посмотрите, как это используется в Starter для jQuery

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

Мои RSS-каналы сослужили мне хорошую службу - я обнаружил, что Javascript похож на roguelike!

Это называется Гробницы Аширота.

Учитывая, что вы все равно собираетесь писать какой-то серверный код, имеет смысл хранить на сервере хранилище для множества доменов (адресные книги, результаты покера, конфигурацию графического интерфейса и т.д.). Для всего, что вы получите в Webkit или Gears, вы, вероятно, также можете сохранить это на своем сервере.

Преимущество хранения его на вашем сервере двоякое:

  1. Вы можете довольно просто интегрировать его как уровень модели в типичный фреймворк MVC, и,
  2. Пользователи получают согласованный просмотр без привязки к своему браузеру / ПК или в далеко не идеальной среде (интернет-кафе).

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

Идите с qooxdoo.Недавно они выпустили версию 1.0, хотя большинство ее пользователей говорят, что она созрела для версии 1.0 по крайней мере две версии назад.

Я сравнил qooxdoo с YUI и ext, и я думаю, что qooxdoo - это путь для программистов - YUI не так отточен, как qooxdoo, с точки зрения программиста, а ext имеет не очень дружелюбную модель лицензирования.

Вот несколько сильных сторон (для меня) qooxdoo::

  • чрезвычайно чистый код
  • самая хорошая модель OO-программирования, которую я видел среди фреймворков Javascript
  • чрезвычайно богатая библиотека виджетов пользовательского интерфейса

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

Единственным недостатком является то, что для qooxdoo нет готовых тем (что-то вроде скинов).Но создать свою собственную тему довольно просто.

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