嗨所以我正在尝试建立一个缓存系统
它的工作方式是,当用户单击一个选项卡时,它会在该选项卡的 json 中加载 - 除了用户在一个选项卡上多次单击它会去并多次获取 json 之外,所有工作都正常 - 不理想
所以我的想法是构建一个缓存,以便在第一次单击选项卡后,将 json 添加到缓存中并下次从那里调用。
问题实际上是在哪里初始化缓存数组,以便函数可以添加到它。
显然,当它尝试调用 getData 函数时,我现在拥有它的位置将意味着它未定义。任何人都可以帮忙吗?这是代码
$(function() {
var cache = {};
$(".nav-tabs li a").on("click", function(){
var tabID = $(this).attr("href");
getData(tabID, applicationID);
});
});
function getData(tabID, applicationID){
tab = tabID.replace('#', '');
var promise = this.cache[tab];
if (!promise) {
promise = getJSON(tab, applicationID);
this.cache[name] = promise;
}
$.when(promise).then(function(result) {
//do something!
});
function getJSON (name, applicationID) {
var promise = $.ajax({
url: 'data/' + name + '.json',
method: 'get',
dataType: 'json',
data: {appID:applicationID}
});
return promise;
}