如何在刷新页面时使用Javascript保存静态变量

如何在刷新页面时使用Javascript保存静态变量,javascript,header,xhtml,Javascript,Header,Xhtml,在下面的代码中,我希望在重新加载页面时也能节省计时时间。要另存为静态的变量为“diff”。因为我需要我的计时器返回我重定向到同一页面时节省的las时间。此代码在标题部分中声明。这段代码没有这样做,我将如何实现这一点? ` 在此处输入代码 var startTime=0 var start=0 var end=0 var diff=0 var timerID=0 函数chrono(){ 结束=新日期() 差异=结束-开始 diff=新日期(diff) var msec=diff.getmilliz

在下面的代码中,我希望在重新加载页面时也能节省计时时间。要另存为静态的变量为“diff”。因为我需要我的计时器返回我重定向到同一页面时节省的las时间。此代码在标题部分中声明。这段代码没有这样做,我将如何实现这一点? `

在此处输入代码
var startTime=0
var start=0
var end=0
var diff=0
var timerID=0
函数chrono(){
结束=新日期()
差异=结束-开始
diff=新日期(diff)
var msec=diff.getmillizes()
var sec=diff.getSeconds()
var min=diff.getMinutes()
var hr=diff.getHours()-1
如果(最低10){
最小值=“0”+最小值
}
如果(第10节){
秒=“0”+秒
}
如果(毫秒10){
msec=“00”+毫秒
}
否则如果(毫秒100){
msec=“0”+毫秒
}
//警报(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)
}
函数计时器(){
开始=新日期()
计时()
}
函数计时连续(){
开始=新日期()-diff
开始=新日期(开始)
计时()
}
函数计时集(){
document.getElementById(“chronotime”).innerHTML=“0:00:00:000”
开始=新日期()
}
函数chronoStopReset(){
document.getElementById(“chronotime”).innerHTML=“0:00:00:000”
document.chronoForm.startstop.onclick=chronoStart
}
函数chronoStop(){
document.chronoForm.startstop.value=“开始!”
document.chronoForm.startstop.onclick=chronoContinue
document.chronoForm.reset.onclick=chronoStopReset
清除超时(timerID)
}

在页面范围内,无法使变量在页面重新加载后继续存在。您可以尝试浏览器存储,但这是有风险的(用户可能会在同一页面上打开多个窗口/选项卡,导致混乱)

最重要的选项是将服务器上的日期信息保存在用户的会话上下文中(在收到第一个请求时存储计时器开始日期)。
在用户的会话中,您将能够检测到用户的计时器已在后续调用中启动


此选项还可以避免链接到多个选项卡(虽然不是多个/不同的浏览器)的潜在问题。

在页面范围内,无法使变量在页面重新加载后继续存在。您可以尝试浏览器存储,但这是有风险的(用户可能会在同一页面上打开多个窗口/选项卡,导致混乱)

最重要的选项是将服务器上的日期信息保存在用户的会话上下文中(在收到第一个请求时存储计时器开始日期)。
在用户的会话中,您将能够检测到用户的计时器已在后续调用中启动


此选项还可以防止链接到多个选项卡(但不是多个/不同的浏览器)的潜在问题。

刷新后无法使变量保持活动状态,因为在窗口中创建的变量将在刷新后重新加载

var a = 10;
//You can access this variable as below 
console.log(a);//1st way
console.log(window.a);//2nd Way
因此,当页面刷新时,窗口会重新加载

尝试以cookie的形式保存变量(旧的传统方式)

存在的其他选项有:(相对较新。)

  • 在浏览器中“HTML5WebSQL数据库”() 但不久前,我进行了测试,但它对ff不起作用

  • 本地存储。以下是语法:

    setItem(“开始”,“10”)


  • 上面讨论的选项适用于客户端。该值也可以保存在服务器端。

    刷新后不能使变量保持活动状态,因为变量是在窗口中创建的,刷新后将重新加载

    var a = 10;
    //You can access this variable as below 
    console.log(a);//1st way
    console.log(window.a);//2nd Way
    
    因此,当页面刷新时,窗口会重新加载

    尝试以cookie的形式保存变量(旧的传统方式)

    存在的其他选项有:(相对较新。)

  • 在浏览器中“HTML5WebSQL数据库”() 但不久前,我进行了测试,但它对ff不起作用

  • 本地存储。以下是语法:

    setItem(“开始”,“10”)

  • 上面讨论的选项适用于客户端。该值也可以保存在服务器端。

    您可以使用浏览器实现此操作。由于javascript不能跨域工作,您应该使用localstorage或某些后端来实现此功能

    但是,当您使用localStorage时,用户可以打开它的控制台,并可以使用命令localStorage.clear()清除所有浏览器的存储,因此后一个选项更可靠。

    您可以使用浏览器的来实现此操作。由于javascript不能跨域工作,您应该使用localstorage或某些后端来实现此功能

    // Set value
    localStorage.setItem(saveDiff, diff);
    
    
    window.onload = function() {
        //retrieve value back after page load
        var saveDiff = localStorage.getItem(differenceValue);
    
    }
    

    但是,当您使用localStorage时,用户可以打开它的控制台,并可以使用命令localStorage.clear()清除所有浏览器的存储,因此后一个选项更可靠。

    jee,此代码在模板头中jee,此代码在模板头中
    // Set value
    localStorage.setItem(saveDiff, diff);
    
    
    window.onload = function() {
        //retrieve value back after page load
        var saveDiff = localStorage.getItem(differenceValue);
    
    }