如何正确使用服务器时间

3 篇文章 1 订阅

如何正确使用服务器时间

在移动端的项目中需要实时更新本地时间戳,在移动项目切换到后台时,JS线程会主动挂起或线程阻塞,以结省内存开销,如果JS线程挂起或线程阻塞会引起定时器停止,直到JS线程重新激活;重新激活时,定时器是以线程挂机的时间点继续开始定时器,这个时间差会造成界面的实时时间与服务器时间显示不准确

应用范围

setTimeout

SetInterval

Web Workers

解决方案

Step1: 第一次发起AJAX时,通过获取AJAX response Head信息

//服务器时间
ServerTime=Response.headers.Date;
//本地时间
localTime=new Date();
//时差
diffTime=Math.abs(serverTime-localTime)
//显示的时间
showTimes=ServerTime;
启动定时器

Step2:

当项目由后台切换自前台JS线路激活 定时器激活会自动运行,可以由当前时间与本地时间MS差数与Step1中的时差比较,如果一致或者在差异化大小2S为正常,如果小于或大于则重新获取服务器时间
定时器中校验时间
//当前时间
currentTime=new Date();
newDiffTime=Math.abs(showTime-currentTime);
如果新的时差与当前的时差间隔,小于2S 则视为正常;如果大于2S则重新请求服务器时间,启动Step1;

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值