AJAX は「Asynchronous Javascript And XML」(Asynchronous JavaScript and XML) の略で、インタラクティブな Web アプリケーションを作成するための Web 開発テクノロジを指します。次に、この記事を通じて、IE8 での Ajax キャッシュの問題と解決策を紹介します。一緒に見てみましょう
Ajax の概要
AJAX は、「Asynchronous Javascript And XML」(非同期 JavaScript と XML) です。 XML) は、インタラクティブな Web アプリケーションのための作成 Web 開発テクノロジを指します。
AJAX = 非同期 JavaScript および XML (標準ユニバーサル マークアップ言語のサブセット)。
AJAX は、高速で動的な Web ページを作成するためのテクノロジーです。
AJAX は、バックグラウンドでサーバーと少量のデータを交換することにより、Web ページを非同期に更新できるようにします。これは、ページ全体を再読み込みしなくても、Web ページの一部を更新できることを意味します。
次のコードは他のブラウザでは正常に動作しますが、IE8 では奇妙な問題が発生します。
$.ajax({ url:dataUrl, data:encodeURI(currentjsonform), dataType:'JSON', success:function(item){ debugger; .... } });
慎重に調査した結果、IE8 の ajax キャッシュの問題であることが判明しました。なんと、実行がこの時点に達すると、実際にはバックグラウンド コードにはアクセスせず、以前にキャッシュされた結果が使用され、バックグラウンドでデバッグするときに応答がなく、これが問題であることがわかりました。 ! ! ! IE8は廃止するつもりです。
しかし、奇妙なことに、そのようなコードが多くの場所にあるのですが、なぜここだけがキャッシュされ、他の場所にはキャッシュされないのでしょうか?
解決策:
1.
$.ajaxSetup({ cache: false });
2. パラメータと属性: キャッシュ: false
$.ajax({ url:dataUrl, data:encodeURI(currentjsonform), dataType:'JSON', cache:false, success:function(item){ debugger; .... } });
3. URL のタイムスタンプの後に追加することもできます。および他の方法。
教訓:
プログラマーは本当にそうすべきです: 道路を渡るときは両方向を見てください!
デフォルト値をあまり信頼しないでください。必要な属性を必ず指定してください。したがって、毎回cache:falseを指定するか、各jsページが最初に1回実行されることが保証されるようにするのが最善です:
$.ajaxSetup({ cache: false });
実際、パスにタイムスタンプまたは乱数を追加する方法は次のとおりです。時々信頼できない!おそらくブラウザはそれを無視します。とにかく、IE8 では、タイムスタンプ付きの URL が失敗する状況が何度も発生しました。
上記は私が皆さんのためにまとめたもので、将来的に皆さんのお役に立てれば幸いです。
関連記事:
以上がIE8 での Ajax キャッシュの問題と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。