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

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

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

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

Я работал в Palm, когда я спросил об этом, а что Palm представила в начале 2009 года? webOS, система, в которой все приложения были написаны на JavaScript. :)

Ben Combee 03.09.2010 03:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
22
1
30 551
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

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

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

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

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

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

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

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

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

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

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

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

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

  1. http://gpokr.com/
  2. http://kdice.com/
Ответ принят как подходящий

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

Достоинства:

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

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

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

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

В IE8 Developer Tools есть хороший отладчик javascript. Я знаю IE = PureEvil, но подумал, что укажу на это. К черту IE становится все лучше.

jaywon 21.11.2009 07:53

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

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

С июня 2011 года Adobe AIR больше не поддерживает Linux. blogs.adobe.com/open/2011/06/…

AlexStack 11.08.2011 15:48

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

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

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

С июня 2011 года Adobe AIR больше не поддерживает Linux. blogs.adobe.com/open/2011/06/…

AlexStack 11.08.2011 15:47

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

Хранение его на сервере дает двоякое преимущество:

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

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

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

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

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

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

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

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

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

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

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

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

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

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