[解決済み] IE8でのAJAX結果の予期せぬキャッシュについて
質問
Internet Explorer が JQuery Ajax リクエストの結果をキャッシュすることについて、深刻な問題を抱えています。
私は、ユーザーが新しいページに移動するたびに更新されるヘッダーをウェブページ上に持っています。ページが読み込まれると、次のようになります。
$.get("/game/getpuzzleinfo", null, function(data, status) {
var content = "<h1>Wikipedia Maze</h1>";
content += "<p class='endtopic'>Looking for <span><a title='Opens the topic you are looking for in a separate tab or window' href='" + data.EndTopicUrl + "' target='_blank'>" + data.EndTopic + "<a/></span></p>";
content += "<p class='step'>Step <span>" + data.StepCount + "</span></p>";
content += "<p class='level'>Level <span>" + data.PuzzleLevel.toString() + "</span></p>";
content += "<p class='startover'><a href='/game/start/" + data.PuzzleId.toString() + "'>Start Over</a></p>";
$("#wikiheader").append(content);
}, "json");
これは、ページにヘッダ情報を注入するだけです。これを確認するには www.wikipediamaze.com にアクセスし、ログインして新しいパズルを始めてみてください。
私がテストしたすべてのブラウザ(Google Chrome、Firefox、Safari、Internet Explorer)で、とてもうまく動作します。
ただし
を除いて、IEではうまく動作します。IEではすべてがうまく注入されます。
は、最初の
を呼び出しますが、それ以後は決して
/game/getpuzzleinfo
. まるで結果をキャッシュしてしまったかのようです。
への呼び出しを変更すると
$.post("/game/getpuzzleinfo", ...
IEはそれをうまく拾います。しかし、その後、Firefox は動作を停止します。
どなたか、なぜ IE が私の
$.get
ajax 呼び出しをキャッシュするのでしょうか?
アップデイト
以下の提案に従って、私は私の問題を解決するために、私のAjaxリクエストをこれに変更しました。
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});
どのように解決するのですか?
IE は、Ajax レスポンスを積極的にキャッシュすることで有名です。jQueryを使用しているため、グローバルオプションを設定することができます。
$.ajaxSetup({
cache: false
});
で、jQuery がリクエストのクエリー文字列にランダムな値を追加することで、IE によるレスポンスのキャッシュを防止します。
キャッシュを行いたい他の Ajax 呼び出しがある場合、これはそれらのキャッシュも無効にすることに注意してください。その場合、$.ajax()メソッドの使用に切り替え、必要なリクエストに対して明示的にそのオプションを有効にします。
参照 http://docs.jquery.com/Ajax/jQuery.ajaxSetup をご覧ください。
関連
-
ネットのメモリ管理に関する5つの基本
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] jQuery AJAX送信フォーム
-
[解決済み] Ajaxリクエストが200 OKを返すが、successではなくerrorイベントが発生する
-
[解決済み] jQuery Ajax ファイルアップロード
-
[解決済み] jQuery の Ajax リクエストがすべて終了するまで待ちますか?
-
[解決済み】PHPによるjQuery Ajax POSTの例
-
[解決済み] ASP.NETの場合。Session.SessionIDがリクエスト間で変更される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
Net Core HttpClient処理 レスポンス圧縮の詳細
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
.NET 6における暗黙の名前空間参照
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
[解決済み] crossdomain.xmlファイルとは何ですか?
-
[解決済み] データ入力後に文字列をトリミングする最適な方法。モデルバインダーをカスタムで作成した方が良いですか?
-
[解決済み] ASP.Net MVCとWebフォームを比較する最大のメリット
-
[解決済み] フレームワークのランタイムターゲットが見つからない .NETCoreApp=v1 互換ランタイムの1つと互換性がある
-
[解決済み] WatiNかSeleniumか?[クローズド]