古典的なIEキャッシュとすべてのAjax問題があります。毎分更新するデータがあります。AJAXを使用しているときにキャッシュを消去するクエリーストリングを使わずにhttpレスポンスヘッダーを使用すると、IEキャッシュがクリアされる
フォーラムを調査したところ、これらのオプションは、これらのオプションで沸騰しました(http://stackoverflow.com/questions/5997857/grails-best-way-to-send-cache-headers-with-every-ajax-call) :
- (のような時間= [タイムスタンプ]?)
- は、特に代わりAJAX POSTを使用して要求
- をキャッシュするIEを禁止HTTPレスポンスヘッダを送信するクエリ文字列にキャッシュ無効化トークンを追加GETの
残念ながら、更新されたデータファイルがAkamai Netstorageでホストされており、クエリーストリングを受け入れることができないため、明白なクエリー処理または「キャッシュ:false」設定が機能しません。私もPOSTを使いたくない。
私がしたいのは、特にIEが要求をキャッシュすることを禁止するHTTP応答ヘッダーを送信することです。またはほかの誰かが別のキャッシュ破棄ソリューションを知っている場合はどうしますか?
これはどのように行うことができますか?どんな助けでも大歓迎です。 IEがキャッシュに「同じ」として識別されないように
(function ($) {
var timer = 0;
var Browser = {
Version: function() {
var version = 999;
if (navigator.appVersion.indexOf("MSIE") != -1) version = parseFloat(navigator.appVersion.split("MSIE")[1]);
return version;
}
}
$.fn.serviceboard = function (options) {
var settings = { "refresh": 60};
return this.each(function() {
if (options) $.extend(settings, options);
var obj = $(this);
GetLatesData(obj, settings.refresh);
if (settings.refresh > 9 && Browser.Version() > 6) {
timer = setInterval(function() { GetLatestData(obj, settings.refresh) }, settings.refresh * 1000);
}
});
};
function GetLatestData(obj, refresh) {
var _url = "/path/updated-data.htm";
$.ajax({
url: _url,
dataType: "html",
complete: function() {},
success: function (data) {
obj.empty().append(data);
}
}
});
}
})(jQuery);
私が言及しておかなければならないのは、データファイルがクエリーストリングを許可しないAkamai Netstorageでホストされているということです。 残念ながら、アカマイでクエリ文字列を渡すと、Originサーバーから引き出され、Originに大量のトラフィック負荷がかかるのを避けたいと考えています。 – user1085587