問題タブ [html5-appcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - IOS 6 キャッシュ マニフェスト
iOS 6 <--> OS X Web コンソールを調べていると、いくつかの奇妙な点に気付きました。キャッシュされているはずの css ファイルを更新すると、マニフェスト ファイルを更新しなくても iOS 6 が自動的に新しいバージョンをダウンロードするようです。5.xx では、すべてを整理すると、予想どおりの動作をしていました。
myapp.appcache
デバッグ ツールは、変更がない場合 (5kb ファイルで ~100b "転送")、ファイルが再ダウンロードされていないことを明確にします。
さらに、myimage.jpg は、それ自体もマニフェストも更新されていない場合に転送されることがよくあります。
提案または少なくとも同様の動作の確認はありますか?
html - HTML5 オフライン appcache: すべてのコンテンツを強制的に更新しますか?
小さな HTML5 アプリをサーバーに再デプロイする必要があります。.appcache ファイルに触れるだけで、次回のアクセス時にすべてのブラウザーが最新バージョンのファイルに更新されることがわかりました。
マニフェストは次のようになります。
「触れる」には、内容が変更されるたびに更新されるように、コメント (#Version:) を追加しました。
奇妙なことに、いくつかのファイルが更新されます。すべてではありません。たとえば、同僚が最新の core.js を取得しても、古い walkthrough.mov が表示されます。
キャッシュからすべてのファイルを強制的に更新する簡単なメカニズムはありますか?
SOで次のコードを見つけてスクリプトに含め、役立つことを期待しました。それがどれほど必要かわかりません:(
html - キャッシュ マニフェストがまだ機能しないのはなぜですか?
chorme のコンソールで見ていますが、何も出力されず、アプリケーション キャッシュもありません。なぜこれが起こるのですか?ありがとう
ここに私のhtmlがあります:
test.manifest ファイルの内容は次のとおりです。
これは、ログを出力するための私の js コードです。
chorme のコンソールで見ていますが、何も出力されず、アプリケーション キャッシュもありません。なぜこれが起こるのですか?ありがとう
firefox - Firefox はオフライン キャッシュ マニフェストからページをロードしませんが、Chrome では正常に動作します (+ キャッシュ マニフェストのトラブルシューティングのヒント)
これは基本的に、回答されていない SO の質問と同じです: Offline Web App not caching on Firefox but ok on Chrome
私は同じ問題を経験しており、キャッシュマニフェストを実装しようとする難解な謎とトラップを理解しようとしている人に役立つ可能性があるため、もう少し情報を提供します。
問題: ページの再読み込み/更新をクリックすると、オフライン キャッシュからページが再読み込みされるはずですが、そうではありません。
Chrome 23 では正常に動作します。インターネットから切断してページを更新すると、正常に読み込まれ、コンソールに Application Cache NoUpdate イベントが表示されます。
ただし、Firefox 15.0.1 では 404 ページが表示されます。
トラブルシューティング (Firefox): Firebug に移動し、DOM をクリックしてから、applicationCache をクリックします。ステータスは 0 を示します。これは、キャッシュされていない (ページがオフラインで保存されていない) ことを意味します。
トラブルシューティング (Firefox): [Firefox オプション] -> [詳細設定] に移動し、[オフライン Web コンテンツ] と [ユーザー データ] を確認します。私のドメインがオフラインで使用するために 1.4 MB のデータを使用していることを示しています。(これは、ページがキャッシュされているかどうかを確認するのに適した場所です)。
トラブルシューティング (Firefox): 新しいタブを開き、about:cache に移動します。ここに、オフライン キャッシュ デバイスの見出しが表示されます。ここには、オフライン キャッシュ ファイルが保存されるキャッシュ ディレクトリが表示されます。List Cache Entries をクリックすると、オフライン キャッシュ マニフェストにファイルが表示されます。
ここで奇妙な点が 2 つあります。1) リストのファイルをクリックすると、「キャッシュ エントリ情報 選択したキャッシュ エントリは利用できません」という空白のページが表示されることです。ただし、ファイルは存在し、キャッシュ ディレクトリに空白ではありません 2) キャッシュ マニフェストのすべてのファイルがリストされていますが、呼び出しているページはここにはリストされていません (Chrome DevTools では、マニフェストに次のように表示されます)。マスター: キャッシュ マニフェスト ファイルに明示的にリストされていなくても、自動的にキャッシュされます)。
コールド (空の) キャッシュでは、ページをロードすると、コンソールにはチェック、ダウンロード、進行状況、およびキャッシュされたイベントが表示されますが、キャッシュのステータスはキャッシュされていません。基本的にキャッシュファイルはダウンロードされますが、アクセスできません。Firebug DOM applicationCache は次のように述べています: オフライン キャッシュに 0 アイテム (これは about:cache および Options -> Advanced に示されているものと矛盾します)。ステータスは 1 で、アイドル状態を意味します。オンラインのときに Firebug の [ネット] タブを見ると、200 OK 応答のあるページに対する GET 要求が表示されます。Expires 設定は Wed Dec 31 1969 を示しています。これは、ページが常にフェッチされることを意味すると思います。他のファイルは 304 Not Modified 応答を示します。これは、それらがブラウザーのキャッシュから読み込まれていることを意味します。
オフラインの場合: 「キャッシュされていない」キャッシュを使用すると、GET 要求が失敗し、オフライン フォールバック 404 ページが 200 OK (BFCache) 応答で読み込まれます。
オフライン キャッシュはディスク上に物理的に存在し、進行状況イベントがコンソールに表示されるため、ダウンロードされているようですが、Firefox はキャッシュされたイベントを起動しないため、一部のリソースが正常にダウンロードされませんでした。ファイルはすべて png、js、または php 形式であるため、クレイジーなファイル形式はありません。Chrome はまったく同じファイルを問題なくキャッシュにダウンロードします。モバイル Safari も試してみましたが、オフライン キャッシュからページを正常にリロードしました。
Firefox が特定のファイル タイプをキャッシュしないという既知の問題はありますか? 一部のファイルで .html.php 拡張子を使用しています。また、php ファイルを使用してマニフェストを動的に生成するため、存在するファイルのみを取得し、それらをハッシュして変更を検出し、マニフェストを更新します。
次のステップ: 最小限のマニフェストを試して、それが機能するかどうかを確認し、次にファイルを 1 つずつ追加して、どのファイルがエラーをトリガーするかを確認します。おそらく Firefox は、静的ファイルを手動で更新するのではなく、キャッシュ マニフェストを動的に生成しているという事実を気に入らないのでしょうか?
私はキャッシュ マニフェストの難解な複雑さについて多くのことを学びましたが、コンピューターの専門家というよりはハッカーです。他の誰かが Firefox でこの奇抜さを経験したことがありますか?
ページの先頭:
そしてmanifest.phpはちょうど
etc. etc. It uses RecursiveDirectoryIterator to get all the files in the directory (except the cache itself, which is included by default).
html - アプリキャッシュのダウンロードを制御する
appcache を使用する iPad Web アプリを開発しました。完全にオフラインのアプリを意図したものではありませんが、3G 経由で送信されないように、大きな画像ファイルを保存するために appcache を使用しています。問題は、マニフェストが更新されると、iPad が wifi または 3G に接続されているかどうかにかかわらず appcache が更新されることです。これには費用がかかる可能性があります。
appcache を更新できるかどうかをユーザーに決定させることは可能ですか? 私が見たところ、これは不可能です。すべて自動的に行われ、イベントを取得するだけです。しかし、マニフェストをその場で書くなどの策略があるかもしれません。
それが役立つ場合は、サーバー側で PHP を使用します。ありがとう。
ipad - HTML5 AppCache と SQLite を削除から保護する
すべてのアプリケーション成果物 (HTML ページ、スタイル シート、スクリプトなど) を格納する HTML5 AppCache マニフェストと、ユーザーが送信するフォーム データを格納する SQLite を使用して Web アプリケーションを開発しています。
懸念は、これらのリポジトリの両方がブラウザー データを削除することによって削除されることです。AppCache と比較して、そこに格納されているデータは非常に重要であるため、主な焦点は SQLite です。デスクトップ ブラウザや iPad でアプリケーションの削除を制限する方法はありますか?
PS 実際には、アプリはオフライン モードでアクセスされ、データは後でオンライン モードでサーバーに同期されます。誤って削除する可能性があるため、SQLite のオフライン モードで保存されたデータを削除から保護する必要があります。
html - AppleはiOSデバイスからHTML5キャッシュのオフライン表示を削除しましたか?
4月に会社用のHTML5「webapp」を作成しました。その時点で、iPhoneとiPadのホーム画面に配置し、オフラインで表示するためのブックマークとして保存することができました(AndroidとBBも同様ですが、それらは問題を提示していません)。
6か月後、ページを読み込もうとしましたが、iPhoneとiPadの場合、ホーム画面のボタンは読み込まれませんが、ブックマークは機能します。
信号がないときにホーム画面のボタンを読み込めないグリッチはありますか?
(はい、私は何年も前から質問/回答があることを知っていますが、私は更新された回答を探しています)
これが私のマニフェストです:
私が言ったように、これはAndroid、BB、およびiOSのブックマークで機能し、iOSのホーム画面でのみ失敗します。
html - HTML5 AppCache と通常のブラウザー キャッシュの違いは何ですか?
HTML5 AppCache のポイントがわかりません。すでに通常のキャッシュがあります。初めて Web サイトにアクセスすると、すべてのアセットが既にキャッシュされています。AppCache はどのような付加価値を提供しますか? HTML によって現在参照されていなくても、ダウンロードするアセットをブラウザが認識できるようにするための単なるファイルのリストですか? ブラウザはキャッシュが「オール オア ナッシング」であることを確認しますか、つまり、マニフェストによって参照されるすべてがキャッシュされることを確認しますか、それともまったくキャッシュされないことを確認しますか?
asp.net - ASP.Net (C#) Web アプリをオフラインで使用可能にする
会社の Web アプリをオフラインで利用できるようにする任務を負っています。実際の開発フェーズに移る前に、現在の戦略が破綻しないことを確認したいと思います。
最初にhtml5アプリキャッシュの使用を考えましたが、いくつかのテストを行った後、サーバー側の操作ではなく、レンダリングされる実際のhtmlをキャッシュしているように見えることがわかりました(間違っている場合は修正してください)。レンダリングされた html は現在ログインしているユーザーに依存するため、これは機能しません。私のテストでは、最後にログイン (オンライン) した人がログインしているかのように常に html をレンダリングしました。
私の現在の戦略は次のとおりです。オフラインで使用する必要がある各 aspx ページに対応するために、ログイン ページとオフライン (.html) ページのみをキャッシュします。ログイン (オンライン) が成功するたびに、Web SQL データベースまたは IndexDB (ブラウザーによって異なります) が作成または更新され、そのユーザーがオフラインで操作するために必要なすべてのデータ (ログイン資格情報に使用されるテーブルを含む) が作成または更新されます。このように、オフラインでログインするための唯一の要件は、ログイン資格情報で少なくとも 1 回ログインすることです。
私の懸念は、私がそれを過度に複雑にしていることです。これを機能させるには、現在のページ (多数のページ) ごとに html ページを作成する必要があり、検証、データベース呼び出し、コントロールの入力など、現在サーバーで行われているすべてを JavaScript で書き直す必要があります。ドロップダウン リストやデータ グリッドなど。また、将来変更するものはすべて、後でオフラインで変更する必要があります。
私がやろうとしていることについて、私が見落としている確立されたベスト プラクティスはありますか?
android - Android Webview の Appcache がソースをダウンロードしない
Chromeで試してみたので、Webアプリのappcacheがうまく機能することはわかっています.Chrome for Androidでも機能しますが、WebビューからAndroidアプリにロードすると機能しません。次の設定があります。
しかし、アプリをロードするとき、logcat で次のように読むことができます
10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: CacheGroups 10-15 01:21:43.815: D/WebKit(14278): エラー: 10-15 01:21:43.815 : D/WebKit(14278): アプリケーション キャッシュ ストレージ: ステートメント「DELETE FROM CacheGroups」エラー「そのようなテーブルはありません: CacheGroups」の実行に失敗しました 10-15 01:21:43.815: D/WebKit(14278): 外部/webkit/ソース/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなものはありませんテーブル: キャッシュ 10-15 01:21:43.815: D/WebKit(14278): エラー: 10-15 01:21:43.815: D/WebKit(14278): アプリケーション キャッシュ ストレージ: ステートメント「DELETE FROM Caches」の実行に失敗しましたエラー "そのようなテーブルはありません: キャッシュ" 10-15 01:21:43.815: D/WebKit(14278):外部/webkit/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) no such table: Origins 10-15 01:21:43.815: D/WebKit(14278): ERROR: 10-15 01:21:43.815: D/WebKit(14278): Application Cache Storage: failed to execute statement "DELETE FROM Origins" エラー "no such table: Origins" 10-15 01:21:43.815: D/WebKit(14278): external/webkit/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558): bool WebCore ::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: DeletedCacheResources21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: Origins 10-15 01:21:43.815: D/WebKit(14278): エラー: 10-15 01:21:43.815: D/WebKit( 14278): アプリケーション キャッシュ ストレージ: ステートメント「DELETE FROM Origins」エラー「そのようなテーブルはありません: Origins」の実行に失敗しました 10-15 01:21:43.815: D/WebKit(14278): 外部/webkit/Source/WebCore/loader/ appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: DeletedCacheResources21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: Origins 10-15 01:21:43.815: D/WebKit(14278): エラー: 10-15 01:21:43.815: D/WebKit( 14278): アプリケーション キャッシュ ストレージ: ステートメント「DELETE FROM Origins」エラー「そのようなテーブルはありません: Origins」の実行に失敗しました 10-15 01:21:43.815: D/WebKit(14278): 外部/webkit/Source/WebCore/loader/ appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: DeletedCacheResourcesD/WebKit(14278): 外部/webkit/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: DeletedCacheResourcesD/WebKit(14278): 外部/webkit/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558): bool WebCore::ApplicationCacheStorage::executeSQLCommand(const WTF::String&) 10-15 01:21:43.815: E/SQLiteLog(14278): (1) そのようなテーブルはありません: DeletedCacheResources
そして明らかにAppCacheが機能していません=/私は何か間違ったことをしていますか? ありがとう!