Delphi + Intrawebを使用して、ブラウザストレージ(webSQL / IndexedDB)を備えたHTML5オフラインアプリケーション(キャッシュマニフェスト)を作成できますか?

StackOverflow https://stackoverflow.com/questions/8830097

質問

現在のIntrawebアプリケーションは、実際にはDataSnapクライアントであり、同じマシン上のInterbaseサーバーに接続して一緒に配置するDataSnapサーバーに接続します。正しく動作しますが、非常に遅く、動作するには一定のインターネット接続が必要です。ボタンがクリックされるか、イベントがトリガーされるたびに、ブラウザがWebサーバー(Intraweb)に接続する必要があります。

Delphi XE2のIntraweb、HTML5キャッシュマニフェスト機能を使用してオフラインWebアプリケーションを作成し、モバイルデバイスがオフラインになったときにローカルブラウザーストレージとしてブラウザーベースのSQLストレージ(webSQLやIndexedDBなど)を使用することを考えています。 DataSnapサーバーへの初期化または同期を行うためにインターネット接続が利用可能な場合にのみ、実際のDataSnapサーバーに接続します。

可能ですか?

私の主な問題は、イントラWeb WebアプリケーションからWebページのURLを取得することであり、ブラウザのすべてのストレージコードをテンプレートファイル内に配置したくありません。

Intrawebによって生成されたJavaScriptコードを他のjsファイルに移動するのも非常に面倒です。これを行うと、Intrawebアプリケーションのコードとロジックが破損する可能性があります。これに関する回避策はありますか?

役に立ちましたか?

解決

ご自身で述べたように、「ボタンがクリックされるか、イベントがトリガーされるたびに、ブラウザがWebサーバーに接続する必要があります」。

これはIntraWebの設計です。ほとんどのコードロジックがサーバー側で実行されるクライアントサーバーアプリケーションです。アプリケーションにいくつかのAJAXウィジェットを追加できますが、IntraWeb自体はサーバー側のフレームワークです。

完全なHTML5AJAXクライアントアプリケーションをスタンドアロンで実行できるようにするには、純粋なJavaScriptアプリケーションが必要です。 Sacha / ExtJSベースのAJAXフレームワーク( ExtPascal UniGUI )またはMorfikを実行するには、サーバーが必要です。

しかし、純粋なHTML5 JavaScriptアプリケーションを作成するのは難しい作業ですが、JavaScriptからDataSnapコンテンツを(XMLまたはJSONを使用して)使用できるため、可能です。 JavaScriptアプリケーションを作成するための優れたIDEおよびプラットフォームである http://www.appcelerator.com/ を試すことができます、ネイティブアプリとして実行されます。

HTML5アプリケーションを切断するには、次の製品がリリースされるまで待つ必要がある場合があります。

  • スマート別名OP4JS;
  • WebBuilderを昇格します。

    これら2つのプロジェクトのおかげで、オブジェクトpascalでコーディングし、JavaScriptをpascalソースからコンパイルして、HTMLローカルストレージを使用できるようになります。たとえば、Smart / OP4JSでのストレージの使用に関するこの記事を参照してください。 -私はそれを(Alphaで)テストしましたが、非常にうまく機能します。サーバーなしで実行でき、ローカルストレージを持つ純粋なスタンドアロンHTMLファイルがあります。 SQLite3ストレージが計画されています(まだ完了していません)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top