让我尽量简单地说明这一点。我有一段代码解析动态网站并检索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 :(得分: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);