2016-02-16 37 views
0

讓我儘可能簡化一下。我有一段代碼解析一個動態網站並檢索JSON對象。該網站每半小時更新其數據。所以,我有我的編程代碼的方式,它刷新使用在頁面刷新期間存儲數據

<meta http-equiv="refresh" content="1800" /> 
<script> 

     function requestCrossDomain(site, callback) { 
     if (!site) { 
      alert('No site was passed.'); 
      return false; 
     } 
     var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + site + '"') + '&format=xml&callback=?'; 
     $.getJSON(yql, cbFunc); 
     function cbFunc(data) { 
      if (data.results[0]) { 
       data = data.results[0].replace(/<script[^>]*>[\s\S]*?<\/script>/gi, ''); 
        window[callback](data); 
      } else throw new Error('Nothing returned from getJSON.'); 
     } 
    } 

     var url = 'https://www.emcsg.com/marketdata/priceinformation'; 

     requestCrossDomain(url, 'someFunction'); 



function someFunction(results){ 
var html = $(results); 




     var table_pre = html.find(".view72PeriodsWrapper").find(".previous"); 
     var table_cur = html.find(".view72PeriodsWrapper").find(".current"); 
     var table_fut = html.find(".view72PeriodsWrapper").find(".future"); 
     var previous_tab = [] 
     for (var i = 0; i < table_pre.length; i++) { 
      var previous = ($(table_pre[i])).html(); 
      previous_tab.push(previous.split('<td>').join('').split('</td>')); 

     } 
     var current_tab = [] 
     for (var i = 0; i < table_cur.length; i++) { 
      var current = ($(table_cur[i])).html(); 
      current_tab.push(current.split('<td>').join('').split('</td>')); 

     } 
     var future_tab = [] 
     for (var i = 0; i < table_fut.length; i++) { 
      var future = ($(table_fut[i])).html(); 
      future_tab.push(future.split('<td>').join('').split('</td>')); 

     } 
     var jsonObject = JSON.stringify(previous_tab) ; 
     var jsonObject2 = JSON.stringify(current_tab); 
     var jsonObject3 = JSON.stringify(future_tab); 


     jsonObject = jsonObject.concat(jsonObject2, jsonObject3); 

     $('#json').text(jsonObject); 
     }  

</script> 

現在,因爲我的程序要運行像發言權,永遠,每次刷新程序每半小時,該數據被覆蓋。我想知道一種方法來存儲以前的數據,並將其附加到數組中以便連續刷新。

我試過通過本地存儲,但由於我的整個代碼設置爲每半小時重新運行一次,本地存儲在刷新期間也會被覆蓋。

現在,我如何存儲我的數據?

編輯:上傳了我的整個代碼

+0

您能否顯示您的代碼? – Alexis

+0

你在說什麼類型的程序?瀏覽器中的JavaScript,服務器上的Python,...? –

+0

其在瀏覽器上的JS ..我現在將上傳我的代碼。 –

回答

2

本地存儲應該可以正常工作了你,只要你不覆蓋舊的數據。

var data = []; 
if (window.localStorage['my-data'] !== undefined) { 
    data = JSON.parse(window.localStorage['my-data']); 
} 
data.push(myNewData); 
window.localStorage['my-data'] = JSON.stringify(data); 
+0

你能告訴我我到底該寫什麼?我真的很困惑,因爲頁面刷新,不是這意味着,本地存儲也會刷新?對不起,我是一個新手,我發現這非常混亂 –

+0

@ Sandy.Arv本地存儲的一點是,它持續在頁面刷新之間。您只需確保您不覆蓋本地存儲中的密鑰。每當你有一個最終化的對象'{}'時,使用上面的代碼並用你的對象替換'myNewData'。希望有所幫助。 :) – Harangue

+0

謝謝..現在我明白了..大幫助:) –

相關問題