[解決済み] IE8で$.getJSONがキャッシュされたデータを返す
2022-11-19 17:35:48
質問
現在、ASP.net MVCとJQueryで遊んでいます。私は意味をなさないように見える動作に出くわしました。
私はJQueryの
$.getJSON
関数を呼び出して、いくつかの div にデータを入力しています。イベントが発生するのは
$(document).ready
イベントが発生します。これは完全に動作します。
には、小さな
AJAX.BeginForm
があり、div に値を入れるときに使用する別の値を追加しています。 これはリモート関数を正しく呼び出し、成功したら元の javascript 関数を呼び出して div に再投入します。
ここが奇妙なところです。FireFox と Chrome では、すべてが動作します。 しかし、IE8 (ベータ) では、populate Div スクリプト ($.getJSON 関数を呼び出す) への 2 回目の呼び出しがキャッシュされたデータを取得し、サーバーに問い合わせないのです!
この質問が意味をなすことを願っています:要するに、なぜ
$.getJSON
はキャッシュされたデータを取得するのでしょうか? そして、なぜ IE8 だけに影響するのでしょうか?
どのように解決するのですか?
Firefox と Chrome は、すべての Ajax リクエストをキャッシュできないものとして扱います。IE (すべてのバージョン) は、Ajax 呼び出しを他の Web リクエストと同様に扱います。それが、この動作が見られる理由です。
各リクエストでデータをダウンロードするようIEに強制する方法。
- あなたが言ったように、JQueryの'cache'または'nocache'オプションを使用します。
- リクエストにランダムなパラメータを追加する (醜いですが、動作します :))
- サーバー側で、キャッシュ可能性を設定する (例えば属性を使用します。下記参照)
コードです。
public class NoCacheAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
context.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
}
関連
-
[解決済み] jquery mobileでページ中央のグリッド表示
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] jQuery 複数のイベントで同じ関数を起動する
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
-
[解決済み] デベロッパーツールを使って、Chromeのボタンや要素で実行されるコードを調べる方法
-
[解決済み] jQueryで多段式フォームをリセットする
-
[解決済み] Electron: jQueryが定義されていない
-
[解決済み】$(window).width()がメディアクエリとは違う
-
[解決済み】jQueryの.click - ユーザー関数にパラメータを渡す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught SyntaxError: 予期しない入力の終了
-
[解決済み] クラスメソッド内の "this "をタイプスクリプトで記述する
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み] jQuery に何かを実行する前にすべての画像の読み込みを待つように指示する公式な方法
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
-
[解決済み] jQuery: テーブルの行数を数える
-
[解決済み] クリックボタンでクリップボードにコピー
-
[解決済み] jQueryを使ってロールオーバー時に画像ソースを変更する
-
[解決済み] jQueryの.ajax()メソッドが私のセッションクッキーを送信しないのはなぜですか?
-
[解決済み] jquery input select all on focus