問題タブ [application-cache]

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.

0 投票する
1 に答える
2845 参照

ios - 以前に iPad にキャッシュされた場合、SVG 内の画像がアプリケーション キャッシュから常に読み込まれないのはなぜですか?

ユーザーが SVG を表示できる Web アプリケーションがあります。これらの SVG には通常、相対 URL を使用して読み込まれる画像が含まれています。これを iPad の「Web アプリ」にしたいので、これを iPad ユーザーのホーム画面に追加し、HTML 5 アプリケーション キャッシュによってキャッシュして、ユーザーがこれらの SVG と関連する画像をオフラインで表示できるようにします。

アプリケーションが iPad のホームページ アイコンから読み込まれると、アプリケーション キャッシュ マニフェストが正しく読み取られ、参照されているすべてのリソースがキャッシュされます。この問題は、ユーザーがアプリケーションをオフラインで使用し始めたときに発生します。アプリケーションの使用中に、SVG が追加され、ページ DOM から削除されます。この間、SVG 内の一部の画像は、アプリケーション キャッシュから確実に存在してキャッシュされているにもかかわらず、アプリケーション キャッシュからの読み込みに失敗します。代わりに、サーバーに対して画像の要求が行われますが、ユーザーがオンラインではないため、明らかに失敗します。

興味深いことに、この問題は、iPad のサファリでページに移動するときには発生しないようです。保証はできませんが、フル ページの Web アプリ ビューに固有のようです。

この HTML ページを使用して、これを非常に簡単に再現できます。

この SVG:

SVG によって参照されるこの画像:

SVG が参照する画像

そして、このマニフェスト ファイル:

そして、次の手順に従ってください。

  1. Safari を開き、複製 html ファイルの場所に移動します (Windows 2008 / IIS サーバーでホストされています)。
  2. [ホーム画面に追加] ボタンを使用して、ページをホーム画面に追加します。
  3. Safari を閉じて、Safari キャッシュを消去します
  4. 新しく追加されたブックマークからページを読み込む
  5. ページが完全にキャッシュされるまで待ちます。通常は約 5 ~ 10 秒ですが、一部のアプリケーション キャッシュ イベントにアタッチしてログアウトの進行状況を確認することもできます。
  6. Wi-Fiをオフにする(または使用する接続手段をすべてオフにする)
  7. 新しく追加されたブックマークからページを読み込む
  8. ページが正しくキャッシュされているように見えることに注意してください。追加および削除ボタンを使用します。ページの「追加」ボタンを使用して追加すると、すぐに気付くはずです。SVG の画像リソースは、明らかにキャッシュされているにもかかわらず、常にアプリケーション キャッシュから読み込まれるわけではありません。

問題が発生すると、以下のスクリーン ショットのようなものが表示されます。

アプリケーション キャッシュからの画像の読み込みに失敗した画像を含む SVG のスクリーンショット

私はすでにいくつかの明白なことをチェックしました:

  • アプリケーション キャッシュ マニフェストの MIME タイプが正しい
  • マニフェストがダウンロードされます
  • マニフェストで参照されるリソースは正しくキャッシュされます

私の質問は次のとおりです。

  • なぜこれが起こるのか誰か知っていますか?
  • この問題の回避策はありますか?

これをアップルのバグとして記録したので、彼らから得たフィードバックでこの質問を更新します!

ありがとう!

アンディ。

0 投票する
1 に答える
853 参照

html - window.applicationCache.status は、Firefox では常に 0 です。

検証するマニフェスト (http://manifest-validator.com/) を含む Web サイトがあり、ファイルごとに「進行状況」イベントが発生するため、ファイルは明確にダウンロードされますが、window.applicationCache.status は常に 0 (これは、Web サイトにキャッシュ マニフェストがないことを意味します)。これは Firefox 11 にあります。

これは初回ロード時です。マニフェストがダウンロードされた後にページを更新すると、アプリケーションキャッシュのステータスが最初にチェックされ、アイドル状態になります。これは正しいです。

何か案は?

0 投票する
1 に答える
117 参照

html - ユーザーが必要な場合にのみアプリケーションをキャッシュしますか?

一部のブラウザーは、アプリケーション キャッシュを使用するかどうかをクライアントに尋ねず、最初にアクセスしたときにすべてをダウンロードするだけです (たとえば、Android のブラウザー)。これは、アプリケーション キャッシュが数 MB で、クライアントがモバイル ネットワーク上にある場合に問題を引き起こす可能性があります。これはコストがかかります。また、キャッシュのダウンロードを停止することはできますか? Android などでメニュー ボタンを押してもブラウザは閉じず、バックグラウンドで実行されます。

クライアントが「このサイトをオフラインでキャッシュしたい」ボタンを押したときに設定された Cookie に基づいてマニフェストのみを追加するのは良い考えですか? それによって、新たな課題が生じることはありますか?


私はこれをテストしましたが、うまくいくようです。ただし、さらにテストが必要です。興味があれば、約 2 週間でサイトへのリンクを提供できます。

0 投票する
1 に答える
274 参照

html - 異なるホストに対してアプリケーション キャッシュ フォールバックを使用できますか?

サンプルサイトがあります:

index.html:

appcache.manifest:

test.js:

インターネットに接続せずに localhost で初めてサイトを開くと、コンソールに「Fial」と表示されます。

アプリケーション キャッシュ マニフェストのフォールバック セクションでhttp://different_domainを使用できますか?

0 投票する
1 に答える
290 参照

javascript - HTML5 キャッシュ マニフェストの例外

自分のサイトで applicationcach を使用しようとしましたが、大きな問題があります。style.css favicon.icoとの 3 つのファイルだけをキャッシュしたいscript.js

問題は、ブラウザーが他のファイルも保存することです (例: index.php)。

コードは次のとおりです。

0 投票する
1 に答える
595 参照

html - アプリキャッシュ:オンデマンドでマニフェスト?

私はオフラインだけでなくオンラインでも使用できるWebアプリケーションに取り組んでいます。ユーザーは、コンテンツをダウンロードするかどうかを選択できます。プロンプトが開き、HTMLタグのマニフェスト属性を含むページにリダイレクトされます。

これは魅力のように機能し、ブラウザは期待どおりに動作し、マニフェストにリストされているすべてのものをダウンロードし、オフラインモードで機能します。

これで、ユーザーがコンテンツのダウンロードを選択する前に、ページをホーム画面に追加した場合。彼は明らかにマニフェスト属性のないページにリンクするつもりです。

彼がホーム画面のWebアプリからコンテンツをダウンロードすることを選択した場合、アプリはオフラインモードでの動作を拒否します。

これは、ホーム画面で元々キャッシュ/リンクされていたファイルIOSにマニフェストタグがないためだと思います。


簡単な概要:

オンラインにする->Safari->アプリキャッシュをダウンロードすることを選択->ホーム画面に追加->オフラインにする->ホーム画面からWebアプリを開く->動作

オンラインにする->Safari->ホーム画面に追加->ホーム画面からWebアプリを開く->appcacheのダウンロードを選択->オフラインにする->ホーム画面からWebappを開く->機能しない


これをどのように処理しますか?ホーム画面でリンクするファイルを選択する方法はありますか?私は常に空のマニフェストファイルを提供し、ホーム画面のバージョンに対してのみデータを入力しますか?明らかな何かが恋しいですか?

0 投票する
2 に答える
1653 参照

ajax - HTML5キャッシュマニフェスト:失敗したajax呼び出しがフォールバックを取得する

キャッシュマニフェストを使用してオフライン機能を提供するHTML5アプリケーションがあります。このアプリケーションは、オンラインのときにajax呼び出しを行い、この呼び出しの一部は、応答として403を無許可で取得する可能性があります。

これが私のcache.manifestファイルの下部です:

フォールバックセクションを削除すると、403応答を受信するすべてのajax呼び出しが期待どおりに機能し、jQueryエラーハンドラーでこれを検出して、ユーザーをログインフォームにリダイレクトできます。

ただし、フォールバックセクションが存在する場合、サーバーが403で応答したとしても、フォールバックHTMLのコンテンツを本文として、同じ呼び出しで200 OK応答が返されるため、ユーザーが認証されておらず、に送信する必要があることを知る方法はありません。ログインページ。

ここで何かが足りませんか?前もって感謝します

0 投票する
1 に答える
146 参照

html - HTML 5 アプリケーション キャッシュ - 更新日を取得する

HTML 5静的コンテンツや時刻表などのApplication cacheドキュメントを格納するために、アプリケーションでを使用する予定です。この時刻表は毎週更新されます。アプリケーションでは、この時刻表の最終更新日を表示する必要があります。アプリケーションキャッシュにあるファイルの作成日またはダウンロード日をプログラムで取得することはできますか? それとも、これを行うためのより良い方法はありますか (サーバー側に情報を保存したくありません)? 教えてください。

0 投票する
1 に答える
831 参照

html - HTML5アプリケーションキャッシュ更新ソリューション

すでにたくさんあるので、私はこの質問のためにいくらかの熱を得るかもしれません。

しかし...すべての質問には異なる答えがあり、有限の答えは確かではないようです。

質問...オフラインで使用可能なアプリケーションのアプリケーションキャッシュマニフェストで参照されているファイルを更新する場合、マニフェストを変更せずにマニフェストとオフラインキャッシュを強制的に更新するにはどうすればよいですか?

これが明確であることを願っています。私がいくつかの調査を行ったことを示すために:

オンライン/オフラインWebアプリのHTML5キャッシュマニフェストを適切に無効にする方法は?

https://stackoverflow.com/a/8211563/491044

キャッシュの更新ただし、マニフェストを変更する必要があります...

皆さん、ありがとうございました。

0 投票する
1 に答える
5837 参照

html - キャッシュマニフェスト:prefer-online設定とは何ですか?

ユーザーがオフラインのときにのみ使用するためにページをキャッシュする方法を探していました。それ以外の場合は、通常どおりページをダウンロードします。ただし、キャッシュマニフェストが検出されると、ブラウザはそれらのキャッシュされたページからのみロードされます。

私の検索でhttp://whatwg.orgにたどり着きました。キャッシュマニフェストの作成に関するセクションが私の目に留まりました。抜粋は次のとおりです。

セクションヘッダー

セクションヘッダーは現在のセクションを変更します。4つの可能なセクションヘッダーがあります。

最初の3つはよく知られていますが、最後のセクションヘッダーについては聞いたことがありませんSETTINGS:。ドキュメントはこれを続けています:

現在、1つの設定のみが定義されています。

キャッシュモード設定

これは文字列" prefer-online"で構成されます。キャッシュモードをprefer-onlineに設定します。(キャッシュモードのデフォルトは高速です。)

これは、prefer-online設定がまさに私が探していたものであったかどうか疑問に思いました。この設定により、設定がに設定されている場合にのみキャッシュされたページをロードするようにブラウザに指示しfast、そうでない場合はユーザーがオンラインの場合にページをダウンロードすることを期待していました。

残念ながら、これに関する追加情報や説明は見つかりません。誰かが設定に関する情報に出くわしたことがありprefer-onlineますか?またはSETTINGS:一般的なセクションについて?