どのように私はHTML5のオフラインアプリケーションでキャッシュされたJSONPリターンを避けるのですか?
-
19-09-2019 - |
質問
私は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://movi.es/ に追加する必要がありました。完全なファイルは次のようになります:
CACHE MANIFEST
NETWORK:
http://movi.es/
...と、毎回ネットワークを打つようです。
所属していません StackOverflow