在浏览器或键盘中单击后退按钮后,在java脚本中继续时间

时间:2014-03-20 06:30:07

标签: javascript jquery time

实际上我在该考试门户网站开发了一个在线考试门户网站,我设置时间10分钟就像代码一样(在java脚本中):

<script language="JavaScript" type="text/javascript">
        var sec = 01;   // set the seconds
        var min = 10;   // set the minutes
        var canno = 0;
        function countDown() {
            sec--;
            if (sec == -01) {
                sec = 59;
                min = min - 1;
            }
            else {
                min = min;
            }
            if (sec <= 9) { sec = "0" + sec; }
            time = (min <= 9 ? "0" + min : min) + " mins : " + sec + " sec ";
            if (document.getElementById) { document.getElementById('theTime').innerHTML = time; }
            SD = window.setTimeout("countDown();", 1000);
            if (min == '00' && sec == '00') {
                alert("TimesUp! Moving to Next Page");

                var answer = document.getElementById('<%=txtEssay.ClientID%>').value;
                window.open("English_Skills.aspx?CandNo=<%=CandidateNumber%>&QuesNo=<%=QuesNo%>&a1=" + answer, "_self", "");

                sec = "00"; window.clearTimeout(SD);
            }
        }
        window.onload = countDown;
    </script>

如果点击浏览器或键盘上的后退按钮,它将不会像java脚本中的代码一样预览页面:

 <script type = "text/javascript" >
        function preventBack() { window.history.forward(); }
        setTimeout("preventBack()", 0);
        window.onunload = function () { null };
  </script>

问题

如果时间在10点30分运行,如果点击浏览器或键盘上的后退按钮,时间重置,它将在10:00分钟到来。我不想要10:00分钟我想继续5:30到10:00的时间......

请帮帮我

由于

与Pradeep

2 个答案:

答案 0 :(得分:1)

你应该始终依靠服务器端代码来计时这种性质的东西。客户端/浏览器很容易愚弄或伪造。这样做不仅困难,而且通常远比服务器端安全得多。

答案 1 :(得分:0)

您需要做的是使用Web worker在后台运行javascript并将时间设置为cookie 检查网络工作者的此链接

http://www.w3.org/TR/workers/

并注意一件事,网络工作者只适用于他们不适用于旧浏览器的现代浏览器

或者你可以用cookies来处理这个