客户端和服务器的时间差
创作时间:
作者:
@小白创作中心
客户端和服务器的时间差
引用
CSDN
1.
https://blog.csdn.net/id123152/article/details/144449877
在开发Web应用时,客户端和服务器之间的时间差可能会导致一些意想不到的问题。本文通过一个具体场景(工作人员入场时间显示)来说明这个问题,并提供了一个实用的解决方案。
当工作人员开始工作后,希望界面能够实时显示他已在场的时间,像这样。
按理说前端通过接口拿到工作人员的入场时间,根据
当前时间 - 入场时间
得出初始入场时间,再
setInterval
实时刷新即可。
但是如果你修改了客户端的时区,比如这样。就会发现,已在场时间为变化不定(如下图)。
这是因为服务器和客户端的时区不一致导致的。怎么解决?
其实也挺简单的,让后端在查询接口中返回服务器的当前时间(如下图),
nowTime
表示服务器当前时间,
startTime
是入场时间。
那么入场的初始时间计算如下:
客户端发起请求,获取服务器的时间戳 nowTime
客户端记录发送请求的本地时间 T_local_sent。
客户端记录接收到服务器响应的本地时间 T_local_received。
计算请求往返时间(RTT):RTT = T_local_received - T_local_sent
服务器的时间估计:T_server_adjusted = nowTime + RTT / 2
入场的初始时间 = new Datae(nowTime) + RTT / 2 - new Date(startTime)
热门推荐
家庭关系中的沉默:拖垮一个家的不是贫穷,不是争吵,而是…
红烧带鱼,让你秒变大厨!
秋冬八达岭长城摄影指南:天高云淡,人少景美,拍出绝美大片
全国人工智能应用场景创新“人才培养与产业化”深圳共识发布,助推大湾区智能技术普及
揭秘长城建造黑科技:两千年屹立不倒的建筑奇迹
八达岭长城冬季游:雪景如画,体验历史韵味
藏历年:从松赞干布到现代的千年文化传承
藏历新年背后的神秘宗教仪式
拉萨藏历年:传统民俗大揭秘!
总行、分行、支行到底有何区别?
应届生第一份工作为什么选银行
抑郁症患者的太阳穴疼痛如何缓解?
生脉饮与免疫力:中医理论与现代医学的双重解读
北京大学第一医院专家推荐:太阳穴疼痛的科学缓解法
吃牛肉干竟然会引发太阳穴疼?!
换一个后保险杠需要多少钱
换一个后保险杠需要多少钱
汽车“原厂件”和“副厂件”是啥意思?为何价格差别这么大?
【非遗】川菜烹饪技艺
洗衣机不能甩干的原因及解决办法
洗衣机不能脱水怎么办?6个常见原因及解决方法
浏阳经开区:用创新,“熬”出中药产业新味
“长征一号”:中国核潜艇动力系统的突破之路
09IIIB型核潜艇:中国海军的水下新王牌
从零到一:长征1号核潜艇的传奇历程
肚子“咕咕叫”?解密频繁放屁的真相
大报恩寺:中国佛教文化的瑰宝
绵阳报恩寺:深山故宫里的千年文化之旅
周末打卡!黄贤海上长城森林公园
眉山通惠河步道改造:环保新地标