先贴代码:
function ajaxCache(){
// 请求结果缓存
var cache = {}
// 请求队列
var queque = []
// 请求状态
var status = false
return function (url,data,cb){
var args = JSON.stringify(data)
queque.push({
url:url,
data:data,
callback:cb
})
var fn = function () {
if(queque.length){
var request = queque.shift()
var params = request.data
var reqUrl = request.url
var reqCb = request.callback
$.ajax({
type:"POST",
url: baseUrl + reqUrl,
data:params,
async:false,
dataType:'json',
success: function(ret){
cache[args] = ret
reqCb(ret)
status = false;
fn()
}
});
}
}
//console.log(cache)
if(cache[args]){
cb(cache[args])
}else{
if(!status){
fn()
}
}
}
}使用方式:var getAjaxData = ajaxCache()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。