在下面的代码中,即使我重新加载页面,我也想节省计时时间。保存为静态的变量是“diff”。因为我需要我的计时器返回我重定向到同一页面时保存的最后时间。此代码在 header 部分中声明。这段代码没有这样做,我该如何实现呢?
`
<pre><code><script language="JavaScript">enter code here
var startTime = 0
var start = 0
var end = 0
var diff = 0
var timerID = 0
function chrono(){
end = new Date()
diff = end - start
diff = new Date(diff)
var msec = diff.getMilliseconds()
var sec = diff.getSeconds()
var min = diff.getMinutes()
var hr = diff.getHours()-1
if (min < 10){
min = "0" + min
}
if (sec < 10){
sec = "0" + sec
}
if(msec < 10){
msec = "00" +msec
}
else if(msec < 100){
msec = "0" +msec
}
//alert(document.getElementById("chronotime").innerText);
/* document.getElementById("pps").innerHTML = hr + ":" + min + ":" + sec + ":" + msec
document.getElementById("ppa").innerHTML = hr + ":" + min + ":" + sec + ":" + msec */
document.getElementById("chronotime").innerHTML = hr + ":" + min + ":" + sec + ":" + msec
timerID = setTimeout("chrono()", 10)
}
function chronoStart(){
start = new Date()
chrono()
}
function chronoContinue(){
start = new Date()-diff
start = new Date(start)
chrono()
}
function chronoReset(){
document.getElementById("chronotime").innerHTML = "0:00:00:000"
start = new Date()
}
function chronoStopReset(){
document.getElementById("chronotime").innerHTML = "0:00:00:000"
document.chronoForm.startstop.onclick = chronoStart
}
function chronoStop(){
document.chronoForm.startstop.value = "start!"
document.chronoForm.startstop.onclick = chronoContinue
document.chronoForm.reset.onclick = chronoStopReset
clearTimeout(timerID)
}
</script>
</code></pre>
最佳答案
刷新后您无法使变量保持事件状态,因为变量是在窗口中创建的,刷新后将重新加载。
var a = 10;
//You can access this variable as below
console.log(a);//1st way
console.log(window.a);//2nd Way
因此,当页面刷新时,窗口会重新加载。
尝试以cookie的形式保存变量(旧传统方式)
document.cookie="key=value; key=value....."
存在的其他选项有:(相对较新。)
- 在浏览器“HTML5 Web SQL 数据库”( Reference ) 中。
但是前段时间我测试了一下,在ff上不行。
本地存储。下面是语法:
localStorage.setItem("开始", "10");
上面讨论的选项适用于客户端。该值也可以保存在服务器端。
关于javascript - 如何使用 Javascript 保存静态变量,即使在刷新页面时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524101/