Javascript 有没有办法在jQuery AJAX调用中触发done函数?
我有一个函数,只有在AJAX调用完成后才能继续,但是如果我已经在localstorage中拥有上一个会话的数据,我希望能够跳过该AJAX调用 我当前的代码:Javascript 有没有办法在jQuery AJAX调用中触发done函数?,javascript,jquery,ajax,local-storage,Javascript,Jquery,Ajax,Local Storage,我有一个函数,只有在AJAX调用完成后才能继续,但是如果我已经在localstorage中拥有上一个会话的数据,我希望能够跳过该AJAX调用 我当前的代码: $.when(getAddresses()).done(function (data) { addresses = data.data;; localStorage['addresses'] = JSON.stringify(addresses); {{Rest of the code t
$.when(getAddresses()).done(function (data) {
addresses = data.data;;
localStorage['addresses'] = JSON.stringify(addresses);
{{Rest of the code that should be executed after the AJAX call}}
}
提前谢谢 反过来做 在本地检查数据,如果已经有请求,甚至不要发送请求 用承诺包装数据,这样无论从何处获取数据,它都将始终具有相同的API
async function get_data() {
let addresses = localStorage.getItem('addresses');
if (addresses) {
return JSON.parse(addresses);
}
let ajaxData = await getAddresses();
addresses = ajaxData.data;
localStorage.setItem('addresses', JSON.stringify(addresses));
return addresses;
}
get_data().then(data => {
// Rest of the code that should be executed after the AJAX call
});
另一种方法是忽略本地存储,只需将web服务设置为合适的。然后可以发出HTTP请求,但如果缓存信息显示浏览器缓存包含最新数据,则根本不会发出HTTP请求
您不需要重新设计数据的本地缓存。HTTP已经把它烤熟了。反过来做 在本地检查数据,如果已经有请求,甚至不要发送请求 用承诺包装数据,这样无论从何处获取数据,它都将始终具有相同的API
async function get_data() {
let addresses = localStorage.getItem('addresses');
if (addresses) {
return JSON.parse(addresses);
}
let ajaxData = await getAddresses();
addresses = ajaxData.data;
localStorage.setItem('addresses', JSON.stringify(addresses));
return addresses;
}
get_data().then(data => {
// Rest of the code that should be executed after the AJAX call
});
另一种方法是忽略本地存储,只需将web服务设置为合适的。然后可以发出HTTP请求,但如果缓存信息显示浏览器缓存包含最新数据,则根本不会发出HTTP请求
您不需要重新设计数据的本地缓存。HTTP已将其嵌入。将该逻辑抽象为一个单独的方法,您将在.done回调中调用该方法。不过,这仍将执行ajax调用,如果数据在本地存储中,我希望跳过整个调用。因此,我可以使用该localstorage数据,而不必使用ajax再次获取数据。将该逻辑抽象为一个单独的方法,您将在.done回调中调用该方法。尽管如此,这仍将执行ajax调用,但如果该数据在localstorage中,我希望跳过整个调用。因此,我可以使用本地存储数据,而不必使用ajax再次获取数据。