IE 8下のAjaxキャッシュ問題と解決方法
Ajax概要
AJAXは「Aynchronous Javascript And XML」(非同期JavaScriptとXML)という、インタラクティブなウェブページアプリケーションを作成するウェブページ開発技術です。
AJAX=非同期JavaScriptとXML(標準共通マーク言語のサブセット)。
AJAXは高速ダイナミックページを作成する技術です。
バックグラウンドでサーバと少量のデータ交換を行うことで、AJAXはウェブページを非同期的に更新することができます。これは、ページ全体を再読み込みしないで、ページの一部を更新できるという意味です。
以下のコードは他のブラウザでは正常ですが、IE 8では怪しい問題が発生します。
しかし、不思議なことに、多くのところはこのようなコードです。なぜここだけキャッシュされていますが、他のところはキャッシュされていませんか?
解決方法:
1.
教訓:
プログラマは本当に当たり前です。道を渡ったら両側を見てください。
デフォルト値をあまり信じないでください。属性は何が必要ですか?必ず指定してください。そのため、毎回指定したほうがいいです。cache:false、または各jsページは最初に一回実行することを保証します。
以上述べたのは小编が皆さんに绍介したIE 8の下でAjaxキャッシュの问题です。皆さんに助けてほしいです。ここでも私たちのサイトを応援してくれてありがとうございます。
AJAXは「Aynchronous Javascript And XML」(非同期JavaScriptとXML)という、インタラクティブなウェブページアプリケーションを作成するウェブページ開発技術です。
AJAX=非同期JavaScriptとXML(標準共通マーク言語のサブセット)。
AJAXは高速ダイナミックページを作成する技術です。
バックグラウンドでサーバと少量のデータ交換を行うことで、AJAXはウェブページを非同期的に更新することができます。これは、ページ全体を再読み込みしないで、ページの一部を更新できるという意味です。
以下のコードは他のブラウザでは正常ですが、IE 8では怪しい問題が発生します。
$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
success:function(item){
debugger;
....
}
});
詳しく調べたら、ニマはIE 8のajaxキャッシュ問題です。ニマ、ここまで実行して、実は私達の舞台裏のコードに訪問していません。以前キャッシュした結果を使って、バックグランドがデバッグする時、反応がなくて、やっとこの問題だと発見しました。!!IE 8は転ぶことを承知します。しかし、不思議なことに、多くのところはこのようなコードです。なぜここだけキャッシュされていますが、他のところはキャッシュされていませんか?
解決方法:
1.
$.ajaxSetup({ cache: false });
2.パラメータに属性を加える:cache:false
$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
cache:false,
success:function(item){
debugger;
....
}
});
3.urlの後ろにタイムスタンプを入れるなどの方法もあります。教訓:
プログラマは本当に当たり前です。道を渡ったら両側を見てください。
デフォルト値をあまり信じないでください。属性は何が必要ですか?必ず指定してください。そのため、毎回指定したほうがいいです。cache:false、または各jsページは最初に一回実行することを保証します。
$.ajaxSetup({ cache: false });
実はパスにタイムスタンプや乱数の方法があります。信頼できない場合があります。ブラウザはそれを無視するだろう。いずれにしても、IE 8は何回もurlバンドタイムスタンプが無効になる場合がある。以上述べたのは小编が皆さんに绍介したIE 8の下でAjaxキャッシュの问题です。皆さんに助けてほしいです。ここでも私たちのサイトを応援してくれてありがとうございます。