0
function load() {
var url = buildUrl(null, true);
$.ajax(url, {
cache: true,
dataType: 'json',
beforeSend: function(xhr) {
if (typeof plugin.cache[url] !== 'undefined') {
var result = plugin.cache[url];
// xhr.done();
// xhr.abort();
// xhr.complete();
return false;
}
return true;
},
success: function(result, textStatus, jqXHR) {
handleResult(result);
plugin.cache[url] = JSON.stringify(result);
}
});
};
$(document).ajaxError(function(event, jqxhr, settings, exception) {
switch (jqxhr.status) {
..
}
}
當我將結果緩存時,我希望$.ajax
不要繼續進行調用。 如果我返回false或從beforeSend()
調用xhr.abort()
,則觸發ajaxError。當我撥打xhr.done()
或xhr.complete()
時,通話進行。
有沒有什麼辦法可以阻止電話繼續進行而不會觸發$.ajaxError
?
瀏覽器將成爲自動緩存結果,有沒有你想避免這樣一個特殊的原因? – Vishal
由於某些原因,將緩存屬性設置爲true(僅),仍然會發出AJAX請求。 – Smokie
緩存只適用於GET和HEAD請求,如果你不使用這些,你需要手動實現緩存 - 你已經在做的事情。因此,爲了防止錯誤調用,您需要在發出ajax請求之前檢查手動緩存。 – Vishal