为了账号安全,请及时绑定邮箱和手机立即绑定

急!!!求高手解答JavaScript实时显示Ajax获取的服务器时间的倒计时功能。

急!!!求高手解答JavaScript实时显示Ajax获取的服务器时间的倒计时功能。

青春有我 2018-12-07 02:34:38
  今有如下需求:      现已实现的功能:Ajax实时读取数据库数据,显示倒计时功能。每秒读一次数据库。      待实现功能:出于性能方面考虑,不能这样做。但是界面上的倒计时功能也要体现出“实时”性。所以客户端倒计时效果是实时变化的。目前提供的思路是:Ajax每15秒(这个时间可以自行设置)与数据库中的时间同步一次(目的减少服务器压力),但是客户端要用JavaScript来实时显示同步出来的服务器时间。请问js或jquery该怎么实现?或者哪位朋友有更好的建议?谢谢!
查看完整描述

14 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

那种团购秒杀什么的都是Get请求过一次页面就在本地js上一直

setInterval了没必要15秒就和服务器对一次时间吧。。。反正计算机只有每5秒的平均才真正接近实际时间的1秒没必要搞那么复杂

查看完整回答
反对 回复 2018-12-24
?
HUH函数

TA贡献1836条经验 获得超4个赞

兄弟,这个对时间很有要求的,只能核对服务器时间,因为客户端时间是可以修改的。

查看完整回答
反对 回复 2018-12-24
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

为什么要读数据库呐?客户端的时间能改,服务器时间他们改不了。后台方法里的取服务器时间,用ajax调用后台方法,不用读数据库。没压力。

查看完整回答
反对 回复 2018-12-24
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

好吧,兄弟说的正确,不用每次都读取数据库,数据库只读一次就可以。然后,ajax要实时同服务器通讯,这样服务器压力也不小吧?现在需求是每15秒与服务器时间同步一下,但是在客户端显示时间时,要“实时”显示,而这个实时效果我打算用js来实现。但是我不知道如何实现。

查看完整回答
反对 回复 2018-12-24
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

没有必要这么频繁的和服务器对时,而且http不是对时的协议,不能保证时间上的准确性,至于说客户端改时间的问题,这个只需要在服务器端核对请求的时间就好了。一定要精准对时的话,那你需要用NTP。

查看完整回答
反对 回复 2018-12-24
?
开满天机

TA贡献1786条经验 获得超13个赞

这个不是这样做的。

第一次请求的时候读下服务器的时间。然后剩下的就交给客户端维护。

客户端即使怎么改时间都没用。

每次去更新,连接多了,还给服务器带去很多的压力。

只需要在DOM中维护好时间就行了。

真的好简单的。去看下淘宝啊那些团购网站。都是这样做的。初始化页面的绑定时间。然后剩下的就用js去更新时间。提交的时候还是会验证时间的。所以别想太多了。

查看完整回答
反对 回复 2018-12-24
?
SMILET

TA贡献1796条经验 获得超4个赞

  朋友说的有道理,但是要考虑这个问题,万一客户端与服务端断开连接后,为了实现“实时性”,我认为与服务器同步是必须的。只是我们可以延长与服务器同步的间隔时间,比如说15秒同步一次,然后在这15秒内呢,客户端的倒计时仍能“正常”显示(每秒都变化),而不是“静止的”,过了15秒后再变化。(这种效果能否用js实现)。

查看完整回答
反对 回复 2018-12-24
?
GCT1015

TA贡献1827条经验 获得超4个赞

@Technology: 

不需要考虑断开的情况。因为断开了。浏览器不关。浏览器的秒还是在跳。

所以不需要同步。

而如果浏览器开了。又同样的初始化了时间。所以不会出现误差的。

查看完整回答
反对 回复 2018-12-24
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

@imfunny: 现在必须要与服务器同步,请问能否实现我刚才说的那种效果?不要去纠结要不要与服务器同步的问题。谢谢

查看完整回答
反对 回复 2018-12-24
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

是只需要 打開頁面的時候,初始化一個倒計時就可以了。只需要提交的時候,再去和服務器比較。要小於等於服務器的時間。

查看完整回答
反对 回复 2018-12-24
?
喵喔喔

TA贡献1735条经验 获得超5个赞

老大,这个不需要提交什么数据,只做显示功能。而且必须要与服务器同步,  我们可以延长与服务器同步的间隔时间,比如说15秒同步一次,然后在这15秒内呢,客户端的倒计时仍能“正常”显示(每秒都变化),而不是“静止的”,过了15秒后再变化。(这种效果能否用js实现)。谢谢

查看完整回答
反对 回复 2018-12-24
?
慕慕森

TA贡献1856条经验 获得超17个赞

@Technology: 你倒計時 完了。不是要做處理嗎?不需要提交到服務器嗎?

查看完整回答
反对 回复 2018-12-24
  • 14 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信