どのように私はHTML5のオフラインアプリケーションでキャッシュされたJSONPリターンを避けるのですか?

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

質問

私はJSONPエンドポイントからのデータを含むしようとするまで

私は、キャッシュされたオフラインアプリケーションと幸運を持っていました。ここでは新しいNetflixのウィジェットAPIから1つのムービーをロードする、小さな例です。

<!DOCTYPE html>
<html manifest="main.manifest">
   <head>
      <title>Testing!</title>
   </head>
   <body>
   <p>Attempting to recover a title from Netflix now...</p>
   <script type="text/javascript">
   function ping(r) { alert('API reply: ' + r.catalog_title.title.regular); }
   var cb = new Date().getTime();
   var s = document.createElement('SCRIPT');
   s.src = 'http://movi.es/7Soq?v=2.0&output=json&expand=widget&callback=ping&cacheBuster=' + cb;
   alert('SCRIPT src: ' + s.src);
   s.type = 'text/javascript';
   document.getElementsByTagName('BODY')[0].appendChild(s);
   </script>
</body>
</html>

...と、ここにはファイルが含まれていませんし、私のブラウザが呼び出すHTMLファイルをキャッシュするために知っているので、そこだけは私のマニフェスト、main.manifestの内容です。

CACHE MANIFEST

はい、私は私のサーバーは、正しいコンテンツタイプ、text/cache-manifestでマニフェストを下に送信していることを確認しました。

アプリが正常に動作します - 私はそれを最初に実行したときに、しかし、以降の実行は、さえキャッシュの無効化ライン10での試みで、関係なく、キャッシュからスクリプトをロードしないようにしようとしているようだ - 意味の両方のアラートが表示されクエリ文字列は何ですか。私は、スクリプトのソースを示す警告が表示されますが、コールバックは決して発火しない。

私は2行目からマニフェストリンクを削除し、私のブラウザをリセットする場合 - SafariやiPhoneシミュレータであること - キャッシュをクリアするために、それはすべての時間を動作します。私はまた、ページ内のSCRIPTタグの数を警告しようとしました、そして、それは間違いなくすべての場合に、既存および動的に作成されたタグの両方を見ています。

役に立ちましたか?

解決

なるほど、すべての狂った場所の、スペックでそれを見つけます:

HTTP ://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#concept-appcache-onlinewhitelist-wildcardする

私のマニフェストのセクション:

私は、ネットワークに http://movi.es/ に追加する必要がありました。完全なファイルは次のようになります:

CACHE MANIFEST

NETWORK:
http://movi.es/

...と、毎回ネットワークを打つようです。

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