2012-01-12 3 views
4

Мое текущее приложение Intraweb на самом деле является клиентом DataSnap, который подключается к моему серверу DataSnap, который подключается и размещается вместе с сервером Interbase на той же машине. Он работает правильно, но довольно медленно и требует постоянного подключения к Интернету для работы. Каждая кнопка нажата или любое инициированное событие потребует, чтобы браузер подключился к веб-серверу (Intraweb).Использовать Delphi + Intraweb для создания автономного приложения HTML5 (кэш-манифест) с хранилищем браузера (webSQL/IndexedDB)?

Я думаю о создании автономного веб-приложения с использованием Intraweb в функции обнаружения кэша Delphi XE2, HTML5 и использовать хранилище на базе браузера (например, webSQL или IndexedDB) в качестве локального хранилища браузера, когда мобильное устройство переходит в автономный режим. Он будет подключаться только к реальному серверу DataSnap, если доступно подключение к Интернету для инициализации или синхронизации с сервером DataSnap.

Is is?

Моя основная проблема заключается в том, чтобы получить URL-адрес веб-страниц из веб-приложения intraweb, и я не хочу помещать весь код хранилища в файлы шаблонов.

Также довольно сложно переместить код JavaScript, сгенерированный Intraweb в другие js-файлы, и тем самым я могу нарушить коды и логику приложений Intraweb. Есть ли обходное решение?

ответ

4

Как вы сказали сами: «Каждая кнопка нажата или любое инициированное событие потребует, чтобы браузер подключился к веб-серверу».

Это проект IntraWeb: приложение Client-Server, в котором большая часть логики кода выполняется на стороне сервера. Вы можете добавить некоторые виджеты AJAX в свои приложения, но IntraWeb сам по себе является платформой на стороне сервера.

Для того чтобы иметь полное клиентское приложение HTML5 AJAX, которое может работать автономно, вам понадобится чистое приложение JavaScript. Даже основанные на Sacha/ExtJS фреймворки AJAX (например, ExtPascal или UniGUI) или Morfik требуют запуска сервера.

Но создание чистого JavaScript-приложения HTML5 - сложная задача, но это возможно, поскольку вы можете использовать контент DataSnap из JavaScript (используя XML или JSON). Вы можете попробовать http://www.appcelerator.com/, который является отличной средой разработки и платформой для создания приложений JavaScript, которые запускаются как собственные приложения.

Для того, чтобы иметь отключенное приложение HTML5, возможно, придется ждать следующих продуктов, которые будут выпущены:

Благодаря этим двум проектам вы могли бы закодировать в объекте pascal, тогда JavaScript будет скомпилирован из источника pascal, а затем используйте локальное хранилище HTML. См. Например, this article about using storage with Smart/OP4JS. Я тестировал его (в Alpha), и он работает очень хорошо: у вас есть чистый автономный HTML-файл, который может работать без какого-либо сервера и иметь локальное хранилище. Планирование SQLite3 запланировано (еще не завершено).

+0

Спасибо за ваш ответ. Похоже, что «Smart aka OP4JS» имеет потенциал для решения проблемы, вы думаете, что она будет поддерживать подключение DataSnap? –

+0

В настоящее время существует какой-либо API/коннектор, позволяющий JavaScript подключаться/общаться с сервером DataSnap? –

+1

AFAIK DataSnap в Delphi XE2 (возможно, раньше) способен генерировать обертки JavaScript, которые вы можете использовать в Smart. –