【发布时间】:2012-02-17 02:53:35
【问题描述】:
我有一个函数调用另一个函数来获取数据。该数据可能在本地缓存,或者我可能不得不去获取它。本地缓存很容易。但是,如果我通过 $.getJSON 获取它,而不通过关闭异步来锁定浏览器,是否有某种方法仍然可以将该数据恢复到原始功能?
即在以下代码中:
1) 既然 parseData() 返回时 bar() 不再存在,那么 dataX 去哪儿了?
2) 如果没有 bar() 和 parseData() 都会调用的另一个回调层,并且在请求进行时没有锁定浏览器,我如何将 dataX 从 parseData() 恢复到 foo()?
var foo = function () {
$('body').text(bar());
};
var bar = function () {
var parseData = function (dataX) {
// do something to data
return dataX;
};
if (localStorage.hasOwnProperty('someKey')) {
return localStorage.getItem('someKey');
else {
$.getJSON('http://somewhere.api.com?fubar=good', parseData);
}
};
【问题讨论】:
标签: jquery ajax asynchronous getjson