javascript同步服务器时间和同步倒计时技巧

javascript同步服务器时间和同步倒计时技巧
在网上看到有人问问题,事实上显示服务器的时间同步网页上,有多种实现方式,普通人可能会立即想到可以使用Ajax每秒请求的服务器,然后服务器将页面上显示的时间,可以实现,但有一个大的问题是,每一秒的请求的服务器,因此如果用户,服务器会崩溃(内存占用率会很大),所以在我看来,这种方法是不可行的,我在这里给出一个解决方案,可以实现同步服务器时间同步,倒计时,但是服务器不占用太多的资源。我写的这个想法:

首先,当用户第一次浏览网页,服务器首先得到当前时间显示在页面上(如:在ID时间段跨度显示)

第二步是建立一个新的时间来计算每一秒。新的时间将服务器时间作为初始值,然后每次累积一秒钟,并生成新的时间。

第三步,显示第二步计算的时间。
这并不是很简单,总结为一句话:服务器时间作为初始值,而页面自动每隔1秒生成一秒新的积累时间,这样我们就可以保证服务器时间同步,错误在几秒钟内,就不用介意了,好好看看代码的执行情况
11:21:55 / /第一服务器时间显示在这里
$(函数(){())

无功otime = $(#时间盒);

VaR TS = otime.text()。分裂(:

无功tnums = { parseInt(TS { 0 }),parseInt(TS { 1 }),parseInt(TS { 2 })};

setInterval(){()函数(

tnums = getnexttimenumber(tnums { 0 },tnums { 1 },tnums { 2 });

shownewtime(tnums { 0 },tnums { 1 },tnums { 2 });

},1000);

功能shownewtime(H,M,S){

无功timestr =(0 + h.tostring()),Substr(2)+:

+(0 + m.tostring()),Substr(2)+:

+(0 + s.tostring()),Substr(2);

OTime.text(timestr);

}

功能getnexttimenumber(H,M,S){

如果(+ = s = 60){

s=0;

}

如果(s=0){

如果(+ m = 60){

m=0;

}

}

如果(m=0){

如果(+ = h = 24){

h=0;

}

}

返回{,m,s,};

}

});

本文中的代码没有任何的解释是很简单的(我只是上面显示分钟和秒,你也可以添加日期,加上H = = 0时,直接从服务器得到一个日期或时间,为第一时间,校对日期)不能在下面的评论中了解,我会及时回复,然后按照这个思路来实现倒计时,同步先说明一下,倒计时的同步是什么,就是建立一个类似的秒杀,结束时间,然后计算当前时间和倒计时结束之间的时间间隔和所需的时间,以确保在不同的电脑显示器,浏览器是相同的。代码的实现如下:
同步倒计时

1天,00小时,00分12秒
$(函数(){())

VaR TID = setInterval()函数(){

无功otimebox = $(#时间盒);

无功sytime = otimebox.text();

无功totalsec = gettotalsecond(sytime)- 1;

如果(totalsec > = 0){

OTimebox.text(getnewsytime(totalsec));

{人}

ClearInterval(TID);

}

},1000);

剩下的时间是根据字符串/总秒数计算的。

功能gettotalsecond(timestr){

var;

无功timenums =新的数组();

而(((R = reg.exec(timestr))!= NULL){

Timenums.push(parseInt(R));

}

var = 0,i=0;

如果(timenums.length = = 4){

二= timenums { 0 }×24×3600;

我= 1;

}

二= timenums {我}×3600 + 60×timenums { +我+ + +我timenums { } };

返回第二;

}

根据剩余秒数/生成时间格式

功能getnewsytime(SEC){

var =秒% 60;

秒=(秒S)60

var =秒% 60;

秒=(秒- M)60

var =秒% 24;

var(= H - H)24

无功sytimestr = ;

如果(d > 0){

sytimestr = d.tostring(+);

}

sytimestr + =(0 +)h.tostring(+),Substr(2)

+(0 + m.tostring()),Substr(2)+子

+(0 + s.tostring()),Substr(2)+二;

返回sytimestr;

}

});
为了保证倒计时的准确性,我先用倒计时的时间间隔进入统一计算秒,再由第二代时间格式,时间同步也可以根据上面的例子,直接减少时间,在很多方面,这并不一定是最好的,欢迎大家交流,谢谢!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部