私は、機内モードのiPadで実行するように設計され、スタンドに取り付けられた、クライアント向けのオフラインWebアプリを開発しています。サーバー側の動的ページはなく、静的HTMLページ、ナビゲーションと対話機能を処理するための多くのJavaScriptコンポーネント、および多数の小さなグラフィックアセットがあります。Webサイト全体(静的html + css + js +グラフィックス)の重量は正確に8.3Mbです。
単一のHTMLファイルで宣言されたものを介してサイト全体をキャッシュしていoffline.manifest
ます。このマニフェストはルートディレクトリの下のすべてのファイルを絶対に参照するため、必要なすべてのファイルがキャッシュされます。
JSコードでlocalStorage、IndexedDB、またはその他のオフラインストレージ技術を使用していません。「自動」キャッシュを除いて、私はデバイス上に何も保存しません。
したがって、Webサーバーのログを確認すると、クライアントがiPadのホーム画面にWebアプリをインストールすると、すべてのファイルが一度ダウンロードされ、その後はサーバーから何もダウンロードされません。それは問題ありません。そもそも彼が望んでいたのは、完全なオフラインWebアプリです。
それでは、クライアントから数分間テストした後、彼のiPadが「ローカルストレージを10Mbから25Mbに増やす」ように要求するのはなぜですか?
参考までに、このアプリは一種のクイズで構成されています。1つのウェルカム画面、19の質問画面、1つの結果画面です。ユーザーは質問の順序で前後に移動できますが、メモリフットプリントを最小限に抑えるために、オンザフライで作成および無効化されます。とにかく、この問題がRAMアクセスに関係しているとは思わず、「ハード」で永続的なキャッシュストレージにのみ関係していると思います。