存储div的自动生成内容并在页面重新加载时使其可用

时间:2016-11-25 02:16:50

标签: javascript jquery html

我目前正在创建一个考试门户网站,要求在所有页面导航中使用一致的计时器,并在时间用尽后重定向到提交。

我目前正在使用原生javascript来执行时间并显示在

下面

// JavaScript文档

var count = remsecs;
var count2 = remmin;
var count3 = remhrs;
var counter = setInterval(timer, 1000); //1000 will run every 1 second

function timer(){

    count = count - 1;

     if (count3 > 0){
     if (count2 == 0){
        count3 = count3 - 1;
        count2 = 59;
        count = 59;
        timer();
        //clearInterval(counter); //counter ended, do something here 

     //count = count - 1;
     }
     }

     if (count == 0){
        count2 = count2 - 1;
        count = 60;
        timer();
        //clearInterval(counter); //counter ended, do something here 

     //count = count - 1;
     }

document.getElementById("timerhr").innerHTML = '<strong>' + count3 + "</strong>";
document.getElementById("timermin").innerHTML = '<strong>' + count2 + "</strong>";
document.getElementById("timersecs").innerHTML = '<strong>' + count + "</strong>";

var myhrs = document.getElementById("hrs").value = count3;
var mymin = document.getElementById("mins").value = count2;
var mysec = document.getElementById("secs").value = count;

//document.write(count + "<br />" + count2);

if (mymin <= 3 && mymin > -1 && myhrs == 0){
    document.getElementById("timerhr").innerHTML = '<font size="+2" color="red"><strong><blink>' + count3 + "</blink></strong></font>";
    document.getElementById("timermin").innerHTML = '<font size="+2" color="red"><strong><blink>' + count2 + "</blink></strong></font>";
    document.getElementById("timersecs").innerHTML = '<font size="+2" color="red"><strong><blink>' + count + "</blink></strong></font>";
    }
if (mymin == 0 && mysec <= 02 && myhrs == 0){
        window.location = "printresult.php";
        }
}

实际上,我试图避免每次按下页面上的任何按钮将数据库div的内容存储到数据库中。

是否有一种简单的方法可以将此计时器存储到浏览器中,并在每次页面重新加载时从中选择它?

谢谢

2 个答案:

答案 0 :(得分:0)

您是否查找了可能的浏览器storage options?缺点是它们仅受支持HTML5的浏览器的支持。

每次离开页面时都保存count变量。

根据您的情况,您可以使用sessionStorage。您必须像这样更改代码

...
var count = remsecs;
// checks if sessionStorage has an existing examtimer property
if(sessionStorage.hasOwnProperty('examtimer')) { 
  // sessionStorage only stores string to parseInt
  count = parseInt(sessionStorage.examtimer);
}

...
// executes before tab is navigated away or close
window.onbeforeunload = function(){ 
   // saves count into sessionStorage with the key of examtimer
   sessionStorage.setItem("examtimer", count); 
}

答案 1 :(得分:0)

@Simplex Marketplace 如果您需要查看的是超时: 我非常确定你根本不需要时间计数器。

  1. 您可以在客户开始课程时获得时间戳。
  2. 使用超时或等效时间来跟踪剩余时间
  3. 将从当前时间刻度和时间戳中提取
  4. 在此会话中使用窗口属性&#34;名称&#34; 进行存储。

    P.S:

    window.name 属性可以处理最多或超过2.0MB的数据。