⑴ [求教]商品倒计时器的问题,读取服务器时间后进行运算
不用每次都取服务器时间啊。你就在打开页面的时候取一下时间,计算一下倒计时间就行了,然后做个JavaScript计时器就行了。倒计时代码。
var time_now_server,time_now_client,time_end,time_server_client,timerID;
time_end=new Date("Jan 20, 2002 00:00:00");
time_end=time_end.getTime();
time_now_server=new Date("Dec 21, 2001 13:11:1");
time_now_server=time_now_server.getTime();
time_now_client=new Date();
time_now_client=time_now_client.getTime();
time_server_client=time_now_server-time_now_client;
setTimeout("show_time()",1000);
function show_time()
{
timer.innerHTML =time_server_client;
var time_now,time_distance,str_time;
var int_day,int_hour,int_minute,int_second;
var time_now=new Date();
time_now=time_now.getTime()+time_server_client;
time_distance=time_end-time_now;
if(time_distance>0)
{
int_day=Math.floor(time_distance/86400000)
time_distance-=int_day*86400000;
int_hour=Math.floor(time_distance/3600000)
time_distance-=int_hour*3600000;
int_minute=Math.floor(time_distance/60000)
time_distance-=int_minute*60000;
int_second=Math.floor(time_distance/1000)
if(int_hour<10)
int_hour="0"+int_hour;
if(int_minute<10)
int_minute="0"+int_minute;
if(int_second<10)
int_second="0"+int_second;
str_time="<font style='font-size:14pt;color:#28C84A'>"+int_day+"</font><font face='黑体' style='font-size:13pt;'>天</font><br>"+int_hour+":"+int_minute+":"+int_second;
timer.innerHTML=str_time;
setTimeout("show_time()",1000);
}
else
{
timer.innerHTML ="over";
clearTimeout(timerID)
}
}
⑵ php 网络考试系统 的倒计时怎么做时间到了自动弹出交卷的对话框
1.用js的setinterval()来设一定倒计时,倒计时的初始值由php分配过来;
2.为了防止别人自己调试js,修改时间,每10秒钟或更小用ajax检测一下服务器,统一次差值,这样就和服务器同步了。
3.在服务器每份试卷或每个人都是唯一的,只要开始启用,到时自动过期,保存存一个“提交失败”。
如果同时答题的人数不是很巨大,直接存session里面,访问量高的话存在数据库里面。
4.当倒计时为0时自动提交到服务器,服务器设一个容错时间,大概1分钟左右,即网络传输过程中超过1分钟就会提交失败。
5.在这考试期间,无论怎么刷新都是那一套题目,提交成功后就不能断续做题;提交失败后重新分配另一套题;重新开始计算时间;
6.避免题目重复,当提交失败3次后,就不能再次做题了。
虽然这样做了,也只能防止菜鸟作弊!
代码自己写。。