我正在尝试创建一个从定义的数字开始然后计数到无穷大的计数器。我正在使用localstorage保存计数,但是我希望从文本文件中读取计数。
这是我现在正在使用的代码。如您所见,我将计数器保存在本地存储中,但我想向我的网站的每个访问者显示相同的数字。为此,我想我必须从文件中保存并加载这些文件吗?
<span id="liveNumbers"></span>
if(window.localStorage) {
var updateInterval = 1000; //ms
function randomRange() {
return Math.floor(Math.random()*3)+1;
}
$(document).one('ready', function () {
localStorage.clear();
});
var counter = +localStorage.getItem('counter');
if (!counter) { //first load
counter = 450000;
} else {
var lastSessionEnd = +localStorage.getItem('lastSessionEnd');
for(var l = Math.floor((getUnixTimeStamp() - lastSessionEnd)*1000/updateInterval); l--;) {
counter += randomRange();
}
}
var liveNumbers = document.getElementById('liveNumbers');
function refreshDisplay() {
liveNumbers.innerHTML = commaSeparateNumber(counter);
}
refreshDisplay();
setInterval(function() {
counter += randomRange();
refreshDisplay();
}, updateInterval);
function commaSeparateNumber(val) {
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
return val;
}
function getUnixTimeStamp() {
return Math.floor(Date.now()/1000);
}
window.addEventListener('beforeunload', function() {
localStorage.setItem('counter', counter);
localStorage.setItem('lastSessionEnd', getUnixTimeStamp());
});
} else {
}