我正在使用一个基本函数来执行 AJAX 请求并获取 JSON:
function getData(endpoint) {
return $.ajax({
type: "GET",
url: endpoint
});
}
问题在于,有时端点可能无响应或需要太多时间来加载数据。 在这种情况下,我需要使用上次调用端点时获得的最新 JSON。
我正在寻找一种方法来跟踪 AJAX 响应时间,以及是否超过给定的时间限制,以使用上一个请求的缓存 JSON 响应。
有没有一种优雅的方法可以用 jQuery 来做到这一点?
感谢您的建议
最佳答案
尝试用一些示例代码来解释 Anthony Gris 的评论
var lastResponseData;
function getData(endpoint) {
return $.ajax({
type: "GET",
url: endpoint,
dataType: 'json',
timeout: 1000,
error:function(jqxhr, status){
if(status==="error"){
if(lastResponseData!=null){
//use it
}
}
else
{
getData(endpoint); try again
},
success:function(data){
lastResponseData=data;
//do work
}
}
});
}
关于jQuery 缓存 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862906/