47

ブラウザでアプリケーションを構築することは可能ですか? アプリケーションとは、次のことを意味します。

1ブラウザとリモート アプリケーション サーバーの間に接続(オンライン モード) がある場合:

  • アプリケーションは、一般的な Web ベースのモードで実行されます
  • アプリケーションは必要なデータをオフライン ストレージに保存し、オフライン モードで使用します (2)
  • アプリケーションは、オフライン モードからオンライン モードに戻るときに、(オフライン モード中にキャプチャされた) データをサーバーに同期/プッシュします。

2ブラウザとリモート アプリケーション サーバーの間に接続がない場合 (オフライン モード):

  • アプリケーションは引き続き実行されます (javascript?)
  • アプリケーションは、(オフラインで保存されている) データをユーザーに提示します。
  • アプリケーションはユーザーからの入力を受け入れることができます (およびオフライン ストレージに保存/追加できます)。

これは可能ですか?答えが「はい」の場合、構築中の (Ruby/Python/PHP) フレームワークはありますか?

ありがとう

4

6 に答える 6

41

はい、可能です。

  • アプリケーションを Javascript で作成し、ブラウザがオフライン モードかどうかを何らかの方法で検出する必要があります (最も簡単なのは、たまにサーバーをポーリングすることです)。(編集:オフラインモードを検出するより良い方法については、コメントを参照してください)

  • アプリケーションが静的な HTML、Js、および CSS ファイルのみで構成されていることを確認してください (または、キャッシュ ポリシーをスクリプトで手動で設定して、ブラウザーがオフライン モードでそれらを記憶できるようにします)。ページの更新は、サーバー経由ではなく、JS DOM 操作によって行われます (ここでは、ExtJS http://www.extjs.comなどのフレームワークが役立ちます) 。

  • ストレージには、ブラウザーのローカル ストレージを使用してデータを追跡するPersistJS ( http://github.com/jeremydurham/persist-js ) などのモジュールを使用します。接続が回復したら、サーバーと同期します。

  • 使用する画像やその他のアセットを事前にキャッシュする必要があります。そうしないと、以前に使用したことがない場合、オフライン モードで使用できなくなります。

  • 繰り返しますが、アプリの大部分は JavaScript である必要があります。サーバーに到達できない場合、PHP/Ruby/Python フレームワークはほとんど役に立ちません。サーバーはおそらく可能な限りシンプルに保たれ、REST に似た AJAX API を使用してデータを保存およびロードします。

于 2010-05-07T06:15:37.053 に答える
15

Mark Pilgrim の (オンライン) 書籍Dive Into HTML5「Let's Take This Offline」の章は、HTML5 テクノロジを使用したオフライン Web アプリの作成に関する非常に優れた概要です。

注: Mark Pilgrim の元の Dive Into HTML5 リンクがダウンしているようです。

コピーは、他の場所の中でもここで見つけることができます。

于 2010-05-30T10:23:36.273 に答える
4

ジェイク・アーチボルドは「The offline cookbook」を書きました。ServiceWorker を使用した最新 (2014 年 12 月 9 日) の優れたアプローチ:

http://jakearchibald.com/2014/offline-cookbook/

于 2015-02-25T16:25:04.637 に答える
0

私もこれを探していましたが、 abt HTML5 Offline Web Appsを見つけました。それを試していない

一般的なオンライン Web アプリケーションのユーザーは、インターネットに接続している間だけアプリケーションを使用できます。オフラインになると、電子メールをチェックしたり、カレンダーの予定を閲覧したり、オンライン ツールを使用してプレゼンテーションを準備したりすることができなくなります。一方、ネイティブ アプリケーションはこれらの機能を提供します。電子メール クライアントはフォルダーをローカルにキャッシュし、カレンダーはイベントをローカルに保存し、プレゼンテーション パッケージはデータ ファイルをローカルに保存します。

于 2010-05-30T10:12:42.580 に答える
-1

Google Gears、http://code.google.com/apis/gears/をご覧ください。HTML5を優先して段階的に廃止されましたが。ただし、HTML5としてプッシュされているのはGoogleGearsのようです。

于 2010-05-21T03:25:07.180 に答える