怎样在asp.net中定时结束程序 我在做一个网上考试系统,是用vb.net开发的,请教高手,怎样定时结束考试。越详细越好,小女子这厢有礼了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我很久前做的一个考试的:也是用VB做的呢<%@ Page Language="vb" AutoEventWireup="false" Codebehind="ExamPaper.aspx.vb" Inherits="exam.ExamPaper"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <title>ExamPaper</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <LINK href="../Styles.css" type="text/css" rel="stylesheet"> <script language="javascript"> var hoursms = 60*60 var Secondms = 60 var mytime=(<%=strExamTime%> /1000) function clock() { mytime=mytime-1; var myhour=Math.floor(mytime/3600); var mymm = Math.floor((mytime-myhour* 3600)/60); var myss =mytime-myhour*3600-mymm*60; timecount.innerText="考试时间还剩:"+ myhour +" 时 "+ mymm +" 分 "+ myss +" 秒 "; setTimeout("clock()",1000); } setTimeout("document.getElementById('Button1').click()",<%=strExamTime%>); </script> </HEAD> <body onload="clock()"> 这注意有:onload="clock()"<asp:button id="Button1" runat="server" Text=" 交 卷 "></asp:button><FONT face="宋体"> </FONT><span onclick="javascript:return confirm('确定要返回不考试了吗?')"> <asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="../Default.aspx">返回</asp:HyperLink><INPUT id="mystartTime" type="hidden" runat="server"> </span>---------------------------------- Public strExamTime As Integer = mybiz.GetConfig().Rows(0).Item("ExamTime") '考试时间 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在此处放置初始化页的用户代码 If Not IsPostBack Then mystartTime.Value = Date.Now 'getdata() End If End Sub 如果要详细的就留下mail这是我好久前别人叫我给他做的。。结果还有一点没有完成别人就不要了。。不过基本的功能都完成了的。。 我的思路是服务器端按照开始考试时候的DateTime.Now来计算结束时间,你在考试的时候比如获取题目啊,提交某题答案啊,总要和服务器交互吧??交互的时候再判断一次,如果“快到了”给点提示人家,到了就收掉。注意判断的应该是服务器的系统时间,防止客户端靠改系统时间来作弊。 比较不严密的办法,在页面的脚本中设置一个setTimeOut,直接定义你考试时间为第二次动作的时间,用户一打开页面,它就开始计时,时间到,自动用脚本点击提交按钮,但这种方式较不严密(取的是客户端脚本).另外一种,我们一样使用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(); [email protected]学习一下,谢谢! 因为一些原因,很久没有上来,在这里感谢大家的回复,特别感谢nycun兄,我的email是[email protected] 希望nycun兄不要因为小妹回复的晚而生气。 使用AjaxPro调Dataset出现问题 Taokee.com寻人启事 在 asp.net 中怎样实现上传,下载文件的功能 很严重的问题:假如web服务器down掉了该怎么办? 简单问题,谁能正解,给满分! 有关页面传值:只用javascript行吗? 在頁面上顯示xml節點及內容 ASP.NET如何生成EXE文件? 为什么不能创建CreateObject("WScript.Shell") 问一古怪问题谁知道里面的程序如何单独列出记录 CheckListBox中显示的字符数为什么不能超过8个??? CodeSmith生成代码的问题.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>ExamPaper</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../Styles.css" type="text/css" rel="stylesheet">
<script language="javascript">
var hoursms = 60*60
var Secondms = 60
var mytime=(<%=strExamTime%> /1000)
function clock()
{
mytime=mytime-1;
var myhour=Math.floor(mytime/3600);
var mymm = Math.floor((mytime-myhour* 3600)/60);
var myss =mytime-myhour*3600-mymm*60;
timecount.innerText="考试时间还剩:"+ myhour +" 时 "+ mymm +" 分 "+ myss +" 秒 ";
setTimeout("clock()",1000);
}
setTimeout("document.getElementById('Button1').click()",<%=strExamTime%>);
</script>
</HEAD>
<body onload="clock()"> 这注意有:onload="clock()"<asp:button id="Button1" runat="server" Text=" 交 卷 "></asp:button><FONT face="宋体">
</FONT><span onclick="javascript:return confirm('确定要返回不考试了吗?')">
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="../Default.aspx">返回</asp:HyperLink><INPUT id="mystartTime" type="hidden" runat="server">
</span>
----------------------------------
Public strExamTime As Integer = mybiz.GetConfig().Rows(0).Item("ExamTime") '考试时间
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
mystartTime.Value = Date.Now
'getdata()
End If
End Sub
另外一种,我们一样使用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();