Javascript java脚本中的秒表
我想通过向母版页添加4个aspx页面,一次为4个科目设计一个在线考试网站。为此,我需要一个秒表 据我所知,我用JavaScript设计了一个秒表,并将其附加到母版页Javascript java脚本中的秒表,javascript,asp.net,Javascript,Asp.net,我想通过向母版页添加4个aspx页面,一次为4个科目设计一个在线考试网站。为此,我需要一个秒表 据我所知,我用JavaScript设计了一个秒表,并将其附加到母版页 var tim; var min = 120; var sec = 60; var f = new Date(); function f1() { f2(); document.getElementById("startday").innerHTML = f.getDate() + "/" + (f.getMont
var tim;
var min = 120;
var sec = 60;
var f = new Date();
function f1() {
f2();
document.getElementById("startday").innerHTML = f.getDate() + "/" + (f.getMonth() + 1) + "/" + f.getFullYear();
document.getElementById("starttime").innerHTML = "Exam Starts at " + f.getHours() + ":" + f.getMinutes();
//document.getElementById("endtime").innerHTML = "Your time is :" + f.toLocaleTimeString();
}
function f2() {
if (parseInt(sec) > 0) {
sec = parseInt(sec) - 1;
document.getElementById("showtime").innerHTML = min + ":" + sec;
tim = setTimeout("f2()", 1000);
} else {
if (parseInt(sec) == 0) {
min = parseInt(min) - 1;
if (parseInt(min) == 0) {
clearTimeout(tim);
location.href = "default5.aspx";
} else {
sec = 60;
document.getElementById("showtime").innerHTML = min + ":" + sec;
tim = setTimeout("f2()", 1000);
}
}
}
}
但我的问题是,如果我改变我的主题,母版页也得到刷新,秒表时间从120分钟开始重新开始
所以请帮帮我。即使我更改了主题,时间也应该保持原样而不刷新。如果在ASP中执行此操作,则应将计时器保留在服务器端,并将其引入新加载的页面(以便在运行时保持状态)。否则,您可以设置cookies,并在从一页到另一页的过程中从您停止的地方开始 或者,您可以动态加载新页面,这样您就永远不会离开主页面(计时器驻留在其中),或者使用iframe,或者,如果所有页面都是某个域的本地页面,那么您可以通过ajax加载它们
但我确实认为第一种选择是最好的,如果你能控制ASP 我假设您使用的是ASP.Net Web表单。您可以使用会话来保持时钟的状态。在母版页中,可以有类似的内容
<script>
var min = <%= Session["min"] %>;
var sec = <%= Session["sec"] %>;
</script>
var min=;
var-sec=;
每次用户切换到另一个页面时,请尝试更新会话状态。如果您要问这个问题,您需要更加熟悉此处涉及的客户端和服务器技术。ASP生成HTML页面(以及其他内容)。当它们被生成时,它们的行为就像任何其他HTML页面一样,包括iFrame和HTML必须提供的任何其他内容)@namkha87的答案就是我所描述的理想解决方案。只有在绝对必要的情况下才使用iFrame。小提示:以后做
parseInt(sec)
会让你头疼。相反,要这样做:+sec
或parseFloat(sec)
或parseInt(sec,10)