
php thinkphp 考试 倒计时 200
我想用thinkphp开发一个考试功能:a.html页面有一个报名按钮,当报名人数达到2人时,考试同时开始,考试时间为10分钟。我想问一下:这个倒计时该怎么设计?在考试的...
我想用thinkphp开发一个考试功能:
a.html页面有一个报名按钮,当报名人数达到2人时,考试同时开始,考试时间为10分钟。
我想问一下:这个倒计时该怎么设计?在考试的过程中,刷新页面,倒计时不会重置。 展开
a.html页面有一个报名按钮,当报名人数达到2人时,考试同时开始,考试时间为10分钟。
我想问一下:这个倒计时该怎么设计?在考试的过程中,刷新页面,倒计时不会重置。 展开
2个回答
2015-03-14
展开全部
给楼主提供一下思路吧
首先设计后端接口
统计人数接口,当人数达到要求是返回考试开始,开始时间,结束时间
考试开始初始化接口,记录开始时间,考生信息等,特别注意答题一半的情况
记录考试信息
前端(a.html)设计:
1.页面加载时候请求后端接口(1)
2.如果考试开始,请求后端接口(2)
3.当时间到、或者页面关闭前发送答题信息到后端接口(3)
展开全部
以前做过一个,是C#版的
//显示倒计时,参数 分钟
protected void showTimes(int tmin)
{
int alltimes = tmin * 60 * 1000; //取得分钟,转为毫秒
string endTimesScript = @"<script type='text/javascript'>";
endTimesScript += "var timeLeft = " + alltimes.ToString() + ";";
endTimesScript += @"function countTime() {
var startMinutes = parseInt(timeLeft / (60 * 1000), 10);
var startSec = parseInt((timeLeft - startMinutes * 60 * 1000) / 1000)
document.getElementById('endtime').innerText = '剩余时间: ' + startMinutes + '分钟 ' + startSec + '秒 ';
timeLeft = timeLeft - 1000;
var t = setTimeout('countTime() ', 1000);
if (timeLeft < 0) {
clearInterval(t);
alert('考试时间到!');";
endTimesScript += "document.getElementById('" + Button1.ClientID + "').click();";
endTimesScript += @" }
}
addLoadEvent(countTime); //页面加载后执行多个jS,在My.js里面
</script>
<span id='endtime'></span>";
Literaltimes.Text = endTimesScript;
}
2.。。。禁止网页刷新,后退
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
<script type="text/javascript">
<!-- 不允许网页后退
javascript: window.history.forward(1);
//-->
</script>
<script type="text/javascript">
function Click() {
//考试页面中禁止右击
window.event.returnValue = false;
}
document.oncontextmenu = Click;
</script>
//显示倒计时,参数 分钟
protected void showTimes(int tmin)
{
int alltimes = tmin * 60 * 1000; //取得分钟,转为毫秒
string endTimesScript = @"<script type='text/javascript'>";
endTimesScript += "var timeLeft = " + alltimes.ToString() + ";";
endTimesScript += @"function countTime() {
var startMinutes = parseInt(timeLeft / (60 * 1000), 10);
var startSec = parseInt((timeLeft - startMinutes * 60 * 1000) / 1000)
document.getElementById('endtime').innerText = '剩余时间: ' + startMinutes + '分钟 ' + startSec + '秒 ';
timeLeft = timeLeft - 1000;
var t = setTimeout('countTime() ', 1000);
if (timeLeft < 0) {
clearInterval(t);
alert('考试时间到!');";
endTimesScript += "document.getElementById('" + Button1.ClientID + "').click();";
endTimesScript += @" }
}
addLoadEvent(countTime); //页面加载后执行多个jS,在My.js里面
</script>
<span id='endtime'></span>";
Literaltimes.Text = endTimesScript;
}
2.。。。禁止网页刷新,后退
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
<script type="text/javascript">
<!-- 不允许网页后退
javascript: window.history.forward(1);
//-->
</script>
<script type="text/javascript">
function Click() {
//考试页面中禁止右击
window.event.returnValue = false;
}
document.oncontextmenu = Click;
</script>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询