我想请教大家一个取时间的问题.
我的愿意是想在到达某个时间就调用某一事件.
所以当我点击开始时,就记录下现在的系统时间.string time1 = DataTime.Now();然后想再过60分钟就调用另一个按钮事件.
这样该怎么实现!谢谢大家能讲讲吗?其实我有一点思路,就是在当我点击开始的时候就
DateTime time1 = DataTime.Now();
DateTime time2 = time + 60;
if(time2 - time1 <=0)
{
//调用
}但是应该不对,这个应该写在那个事件中,来控制60分钟时,来调用另一事件
解决方案 »
- listview 当为空数据时仍然显示标题头
- delphi自定义字符类型。用C#怎么写?
- 超高分一个CRM系统的原代码,小弟谢了.分全在这里了.
- 关于HttpContext应用,主要是用在那些方面,有具体例子最好,谢谢,在线等。
- 求一正则表达式.分不是问题哈,谢谢啦
- 用debug与release来发布程序会有多大区别
- 在线等,急,急,自定义控件的问题
- Asp.net怎么实现在输入框中回车之后就模拟按纽阿
- 大家帮忙看一下,为什么用Session保存不了值?
- [size=12px]各位大侠,请扬起你们的仗义,帮我看看删除多行datagrid控件的问题啊!我已经弄了好几天了![color=#FF0000][/color][/size][size=14px][/size][b][/b]
- 在网页上显示下载地址问题。
- 求救版本管理的问题
比如搞一个看不见的内框架,每1分钟悄悄刷新一次问主机到时间没有,如果时间到就通知主框架交卷.也可以追追新潮,用AJAX.不过你的主要难点倒不在一小时交卷上面,而是在如何保持客户端已做的答案,不至于刷新后又要重做.
你能详细点说明一下
搞一个看不见的内框架,每1分钟悄悄刷新一次问主机到时间没有,如果时间到就通知主框架交卷
这个看不见的框架和刷新吗?
我能恢复用户的答案
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<script>
d1 = new Date();
d1 = d1.getTime();
d2 = d1 + 60000; //这里假设考试时间1分钟
function post()
{
alert("时间到了,交卷!");
}
</script>
这个内框架是
<iframe width="0" height="0" src="ask.html"></iframe>
看不见的<br />XXX考试题...
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<script language="javascript">
function ask()
{
d = new Date();
if (d < parent.d2)
{
alert("还有" + ((parent.d2 - d)/1000) + "秒");
location.reload();
}
else
parent.post(); //交卷
}
setInterval(ask,6000); //每6秒问一次
</script>
</body>
</html>
用户点击考试的时候,在缓存里取这个时间
然后根据这个时间,在js端生成定时器计时。
如果要能恢复用户的答案,那就利用xmlhttp或者iframe与后台进行数据交换(xml格式或者json格式都可以),定时间把答案保存起来,需要时恢复
我以前做的在线考试系统需求可多多了 赫
在页面上做一个计时器就ok了
前台用后台的ajax方法头的一个方法,该方法取得试卷时间.刷新操作由js完成.现在在家没有代码,明天发给你.可以告诉你js+ajax实现没有问题,而且效果还不错. 就算用户刷新的话,也不重新计时.
前台:
<body onselectstart="return false" onkeydown="DisableKey()" oncontextmenu="self.event.returnValue=false"
onload="setTimeout('GetResidualExamPaperTime()', 1000);">
//
<script>
function GetResidualExamPaperTime()
{
var pubID=QueryString('pubid');
document.getElementById("lbl_LastTime").innerHTML=ExamOnline.GetResidualExamPaperTime(pubID).value;
var tmpStr=document.getElementById("lbl_LastTime").innerHTML;
var minute=tmpStr.substr(0,tmpStr.indexOf(':'));
var second=tmpStr.substr(tmpStr.indexOf(':')+1);
//
if(parseInt(minute)<0)
{
submitExam();
}
setTimeout('GetResidualExamPaperTime()', 1000);
}
</script>
后台:
/// <summary>
/// 显示剩余时间
/// </summary>
/// <param name="pubID"></param>
/// <returns></returns>
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
public string GetResidualExamPaperTime(string pubID)
{
string lastTimeStr = FCD_ExamPaper.GetResidualExamPaperTime(pubID);
return lastTimeStr;
}引用Ajax.dll,网上应该可以找到。