Создание автономных приложений на JavaScript

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

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

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

18.08.2008 19:52:16
Когда я спросил об этом, я работал в Palm, и что Palm представила в начале 2009 года? webOS, система, в которой все приложения были написаны на JavaScript. :)
Ben Combee 2.09.2010 23:27:58
14 ОТВЕТОВ
РЕШЕНИЕ

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

Потенциал роста:

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

Даунсайд:

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

Итог: пойти на это. Я сделал.

16
18.08.2008 21:19:27
IE8 Developer Tools на самом деле имеет хороший отладчик javascript. Я знаю IE = PureEvil, но, просто подумал, что укажу на это. Ад, который был IE, становится лучше.
jaywon 21.11.2009 04:53:59

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

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

1
18.08.2008 19:55:13

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

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

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

Не полностью на стороне клиента, ну да ладно.

2
18.08.2008 20:02:37

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

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

5
18.08.2008 20:12:46

Nihilogic (не мой сайт) много чего делает с Javascript. У них даже есть несколько игр, которые они сделали в Javascript.

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

2
18.08.2008 20:15:24

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

1
18.08.2008 20:31:02

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

  1. http://gpokr.com/
  2. http://kdice.com/
1
18.08.2008 20:50:06

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

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

7
18.08.2008 21:37:24
С июня 2011 года Adobe AIR больше не поддерживает Linux. blogs.adobe.com/open/2011/06/…
AlexStack 11.08.2011 11:48:05

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

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

0
19.08.2008 17:03:38

Я со ScottKoon, Adobe AIR великолепен. До сих пор я сделал только один действительно хороший (imho) виджет, но я сделал это, используя jQuery и Prototype.js, которые оказались такими замечательными, потому что мне не нужно было изучать совершенно новую модель событий. Adobe AIR действительно хорош, отпечаток памяти не так уж и плох, обновление до новой версии встроено в AIR, поэтому оно почти автоматическое и, что самое приятное, кроссплатформенное ... у них даже есть альфа-версия для Linux , но это работает довольно хорошо уже на моем Eee.

1
2.09.2008 16:53:44
С июня 2011 года Adobe AIR больше не поддерживает Linux. blogs.adobe.com/open/2011/06/…
AlexStack 11.08.2011 11:47:42

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

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

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

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

0
16.09.2008 22:59:43

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

2
28.10.2008 00:33:35

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

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

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

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

1
21.11.2009 04:55:58

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

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

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

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

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

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

0
9.03.2010 14:16:40