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或从xhr.abort()
调用beforeSend()
,则会触发ajaxError。当我拨打xhr.done()
或xhr.complete()
时,呼叫将继续。
有没有办法可以在不触发$.ajaxError
的情况下停止通话?
答案 0 :(得分:2)
你可以按照这样的方式移动你需要进行ajax调用的天气测试:
function load() {
var url = buildUrl(null, true);
if (typeof plugin.cache[url] === 'undefined')
{
$.ajax(url, {
cache: true,
dataType: 'json',
success: function(result, textStatus, jqXHR ) {
plugin.cache[url] = JSON.stringify(result);
}
});
}
handleResult(plugin.cache[url]);
};