2016-09-23 121 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的內容,我想我會嘗試這種方法,如果發現任何問題,我會尋找另一種解決方案。感謝斯大林。 –