Javascript ajax异步存储结果

Javascript ajax异步存储结果,javascript,jquery,json,cross-domain,Javascript,Jquery,Json,Cross Domain,我正在尝试使用JSON数据显示客户端(HTML/Javascript)构建的页面 4页,使用相同的JSON对象构建 所以我不想每次生成页面时都检索JSON 这就是我创建此函数的原因: function retrieve_user_info() { //////// // Here, code that decides whether we use the local data or if we call the server again //////// var request_in =

我正在尝试使用JSON数据显示客户端(HTML/Javascript)构建的页面

  • 4页,使用相同的JSON对象构建 所以我不想每次生成页面时都检索JSON
这就是我创建此函数的原因:

function retrieve_user_info() {

////////
// Here, code that decides whether we use the local data or if we call the server again
////////

var request_in = {
    UserId:1
};

$.ajax({
    url: "http://localhost:2000/getInfo",
    async: false,
    cache: false,
    data: request_in,
    dataType: 'json',
    timeout: 4000,
    success: function(data) {
        console.log('success')
        returnValue = data;
    }
});

sessionStorage.user = returnValue;
}

在每个页面中,我执行以下操作: -调用函数retrieve_user_info(),以更新(或不更新)本地副本 -使用本地副本生成页面

因此,使用“async:false”在本地工作,但在跨域中它失败了,如文档中所述。 我的问题是如何处理这个问题。 -我不想对每个页面重复服务器调用。 -我确实希望避免过于频繁地检索数据

提前感谢,, 美国

编辑: 经过我的阅读,这似乎是根本不可能的。 我不认为这是重复的,因为我不想将从服务器检索信息的函数与生成页面的函数绑定在一起。 但显然我必须这么做。 谢谢你的回答

评论
奇怪的是,没有简单的方法在本地缓存数据

在“跨域”中可能存在重复的数据,因为您正试图将ajax与不到您自己的服务器的URL等一起使用。如果是这样,则是同源策略。一般来说,您永远不应该需要执行同步调用。我没有看到
async:false
,所以从技术上讲不是dup,但我同意Adaneo,不要这样做。。。查看“dup”,了解有关如何重新组织AJAX代码的更多信息。