[求教]商品倒计时器的问题,读取服务器时间后进行运算

[求教]商品倒计时器的问题,读取服务器时间后进行运算,第1张

不用每次都取服务器时间啊。你就在打开页面的时候取一下时间,计算一下倒计时间就行了,然后做个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_endgetTime();

time_now_server=new Date("Dec 21, 2001 13:11:1");

time_now_server=time_now_servergetTime();

time_now_client=new Date();

time_now_client=time_now_clientgetTime();

time_server_client=time_now_server-time_now_client;

setTimeout("show_time()",1000);

function show_time()

{

timerinnerHTML =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_nowgetTime()+time_server_client;

time_distance=time_end-time_now;

if(time_distance>0)

{

int_day=Mathfloor(time_distance/86400000)

time_distance-=int_day86400000;

int_hour=Mathfloor(time_distance/3600000)

time_distance-=int_hour3600000;

int_minute=Mathfloor(time_distance/60000)

time_distance-=int_minute60000;

int_second=Mathfloor(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;

timerinnerHTML=str_time;

setTimeout("show_time()",1000);

}

else

{

timerinnerHTML ="over";

clearTimeout(timerID)

}

}

1用js的setinterval()来设一定倒计时,倒计时的初始值由php分配过来;

2为了防止别人自己调试js,修改时间,每10秒钟或更小用ajax检测一下服务器,统一次差值,这样就和服务器同步了。

3在服务器每份试卷或每个人都是唯一的,只要开始启用,到时自动过期,保存存一个“提交失败”。

如果同时答题的人数不是很巨大,直接存session里面,访问量高的话存在数据库里面。

4当倒计时为0时自动提交到服务器,服务器设一个容错时间,大概1分钟左右,即网络传输过程中超过1分钟就会提交失败。

5在这考试期间,无论怎么刷新都是那一套题目,提交成功后就不能断续做题;提交失败后重新分配另一套题;重新开始计算时间;

6避免题目重复,当提交失败3次后,就不能再次做题了。

虽然这样做了,也只能防止菜鸟作弊!

代码自己写。。

这个

后台

代码

应该是ASPNET开发的

页面

的C#代码,

可以直接放在aspx页面的<script

runat="server"></script>

区块

内;

在cs代码与aspx代码分离的情况下,

这个后台代码应该放在c#代码页面内

倒计时可以用js的setTimeout来控制

http://wwwtocuscomcn/send=article_show&id=34&class=2

可以循环计时,而对于页面刷新,我们可以屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键来达到效果

<script>

//屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键

function documentoncontextmenu(){eventreturnValue=false;}//屏蔽鼠标右键

function windowonhelp(){return false} //屏蔽F1帮助

function documentonkeydown(){

if((windoweventaltKey)&&((windoweventkeyCode==37)||(windoweventkeyCode==39))){

//屏蔽Alt+方向键←

//屏蔽Alt+方向键→

eventreturnValue=false;

}

if((eventkeyCode==8)||(eventkeyCode==116)||(eventctrlKey && eventkeyCode==82)){

//屏蔽退格删除键

//屏蔽F5刷新键

//Ctrl+R

eventkeyCode=0;

eventreturnValue=false;

}

if(eventkeyCode==122){eventkeyCode=0;eventreturnValue=false;} //屏蔽F11

if(eventctrlKey && eventkeyCode==78)eventreturnValue=false; //屏蔽Ctrl+n

if(eventshiftKey && eventkeyCode==121)eventreturnValue=false; //屏蔽shift+F10

if(windoweventsrcElementtagName=="A" && windoweventshiftKey)

windoweventreturnValue=false; //屏蔽shift加鼠标左键新开一网页

if((windoweventaltKey)&&(windoweventkeyCode==115)){ //屏蔽Alt+F4

windowshowModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");

return false;

}

}

</script>

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » [求教]商品倒计时器的问题,读取服务器时间后进行运算

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情