做一考试系统,考试时间定为分钟,考试内容10题一页,在客户端写了脚本函数,实现倒计时,在页面的onload事件里加载了倒计时函数,但每次翻页,计时器从新开始计时,有什么办法使得翻页时计时器也不变吗?
若用服务器端计时器,好不好?怎样实现呢?
解决方案 »
- VB.net 和C#.net 可以在一起使用吗?
- List<>的数据怎么读取?
- datagrid添加行问题
- 很菜的问题,.net连非本机oracle数据库的问题
- 数据库如何与前台链接
- 为何ASP.NET查询MySQL UTF8_BIN数据结果为空?
- 孟子e章和思归大哥!动态生成绑定列和模板列得新问题。
- 谁有电子版的ASP.NET高级编程,Wrox出的,进来领分
- 关于新浪微博API服务器端是.json文件
- asp.net中查看gridview中的详细信息用显隐层来显示,不是跳转窗口,修改也是在层中进行的,怎么弄啊这个
- asp.net高手们的对话,过来发表下意见。
- DataBinder.Eval(Container,"DataItem.文件大小","{0:c}")文件转化问题!
另外一种,我们一样使用setTimeOut,但,是通过xmlhttp方式向服务器取时间,这样,用户打开页面时,将打开页面的时间记录在服务器上,然后不断地向服务器取时间进行比较,时间一到,强制提交页面.
下面给你一个示例:
//以XML求取数据
//webFileUrl:要读取的页面地址,可带参数
function XmlPost()
{
//到xxx.aspx求取时间间隔
var webFileUrl = "xxx.aspx";
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send(""); //获取服务端计算时间
result = xmlHttp.responseText; result = new Number(result);
if(result <= 0)
{
//如果服务端剩余时间小于0,则强制提交
document.all("按钮名称").click();
}
else
{
//否则,继续求取时间,一分钟求取一次
setTimeOut("XmlPost()",60*1000);
}
}
在xxx.aspx页面,求取出时间之后,可用如下方式写:
this.Response.Write("取到的时间值");
this.Response.End();
Page.RegisterStartupScript("", _
"<script>StartTimer("+剩余时间.tostring+");</script>")