最近一个项目中是和android那边同用一套接口,每个接口是需要一个参数:timestamp传给后台进行比较。为了减少服务器的压力和减少请求次数,需要客户端本地在接受到一次timestamp后就在本地进行计时,以便在后面的每次接口请求中带上这个参数,但是我目前没有采用单页面的框架,如何才能做到这点呢?
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
setTimeout
/setInterval
计时是不精确的,传给后端的时间会有误差。另一种做法是,你可以在第一次接收到timestamp
时将时间戳和当前时间存储到sessionStorage
,比如
var timeCached = sessionStorage.setItem('timeCached', JSON.stringify({ serverTime: timestamp, clientTime: +new Date() });
然后每次请求时,通过计算
var timeCached = sessionStorage.getItem('timeCached'); // 计算出被发送时的时间戳var newTimestamp=(+new Date() - timeCached.clientTime) + timeCached.timestamp;
就可以得到相对正确的时间戳了。其它的细节,比如时间相减的结果可能要除1000,封装个函数进行接口请求时计算,这就看你具体情况怎么写了。
添加回答
举报
0/150
提交
取消