2016-09-23 66 views
1

我有一个回调jquery ajax函数。这个回调函数从json中创建一个数组。所以,我有如何存储ajax请求的信息

success: function (response) { 
      callback(response); 
     }, 

和回调创造了与调用数组:

Questions(8,createQuestionsArray); 

function createQuestionsArray(result){ 
    for(var subject in result){ 
     var size =Object.keys(result[subject]).length; 
     for(var i=0;i<size;i++){ 
      questions[i] = result[subject][i]; 
     } 
    } 
} 

我想加载的应用程序开始这个数组因此当用户开始测验我不不需要加载问题。我如何存储它?因为只是放入一个全局问题变量,当我去另一个页面时,我有一个空的对象。

谢谢。

+0

您是否有权访问ajax调用发送数据的后端文件? –

+0

您可以使用临时存储或cookie。但是,这可能是一个问题,具体取决于应用程序的运行方式。如果您希望有些用户可能会考虑欺骗应用程序,而不是在运行时从服务器加载问题。 – salih0vicX

+0

是的,我有权访问后端。这不就是我想要避免的@ salih0vicX的问题吗?因为我需要多次打电话给服务器,对吧? –

回答

2

你可以在localStorage的或sessionStorage的存储,但你要注意,这两个只能保存字符串,所以你应该首先字符串化变量

例如

用于保存

var data = JSON.stringify(yourarray); 
localStorage.setItem('key',data); 

用于检索

var response = JSON.parse(localStorage.getItem('key')); 

see a different between localStorage and sessionStorage

more info about session and local storage-

+0

当我在做一些研究时,我读了一些有关localstorage的内容,我想我会尝试这种方法,如果发现任何问题,我会寻找另一种解决方案。感谢斯大林。 –