如何解决前端获取时间并开始计时的延迟问题?
需求是这样的,我们的页面有一个需求,要获取当前时间并显示在页面上一直刷新。
之前的话是直接前端获取当前机器的本地时间,但这么写有几个问题,第一,有些机器根本没开启时间校准,偶尔开机,显示的时间都还是几年前的,实际碰到过。
第二,如果跨时区了,这个时间还是要以服务器的时间为准。
所以,这个时间需要从后台获取,但后台获取的话,这个时间因为网络问题,总是会有延迟,比如现在服务器以及 13 点整了,但因为延迟,客户端的时间少了 10 来秒,咋解决呢?
由于客户端时间可能因用户设置、时区问题或未同步而出现不准确,最佳做法是初始化计时器时从服务器获取标准时间。这可以通过API请求实现,获取到的时间戳作为计时的起点,确保所有客户端的计时基于同一时间源。
js 定时循环用server time校正
如果要消除误差,可以在发送请求前,记录时间,数据返回后获取一个时间。这样两个值一减就知道网络耗时了。服务器返回的时间加上网络耗时,就是当前的真正时间。校正频率可以根据情况处理比如1分钟一次。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。