不使用用AJAX框架实现团购或秒杀的无刷新倒计时方案

1、JS代码

<script language="JavaScript" type="text/javascript">
var now = new Date();
function createtime(){
var grt= new Date("8/08/2011 20:00:00");
now.setTime(now.getTime()+250);
days = (grt - now) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
hours = (grt - now) / 1000 / 60 / 60 - (24 * dnum);
hnum = Math.floor(hours);
if(String(hnum).length ==1 ){hnum = "0" + hnum;}
minutes = (grt - now) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
mnum = Math.floor(minutes);
if(String(mnum).length ==1 ){mnum = "0" + mnum;}
seconds = (grt - now) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
snum = Math.round(seconds);
if(String(snum).length ==1 ){snum = "0" + snum;}

document.getElementById("timeDate").innerHTML = dnum +"天"+ hnum + "小时"+ mnum + "分"+ snum+ "秒";
}
setInterval("createtime()",250);       
</script>

<div class="Bjday" id="timeDate"></div>

2、

其中var grt= new Date("8/08/2011 20:00:00");的时间在页面加载时根据服务器和客户机的时间差(秒)进行动态获取

例如:客户计算机目前的时间是2011-3-25 10:00:00 而服务器的时间时间是2011-3-25 10:00:10 那么2者差10秒

则在该客户端访问页面时8/08/2011 20:00:00值则自动变更为8/08/2011 20:00:10开始计时

js中 var now=new Date();获取的是客户端的时间

3、JS文件再判断时间到了避免出现负值

 

 

4、如果now的时间取服务器的时间,在刷新时如果频繁取服务器的时间则对服务器负荷过大,那将是致命的。

 

在不使用AJAX框架的情况,期待更好的解决方案,这是一个思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值