简单而不简单的倒计时
来源:互联网 发布:手机英语软件 编辑:程序博客网 时间:2024/04/29 18:55
大家对倒计时的第一反应就是通过setTimeout方法来反复执行,貌似这个问题都没有需要探讨的价值,其实不然。
不同手机上和pc上的new Date()会有些许差异,所以比如说给定一个未来的时间戳,你获取当前时间与未来时间戳的时间差,并不是获取new Date()然后与未来时间戳进行相减,而是通过当前服务器时间来获取这个最初的时间差,而这个服务器时间不一定和你电脑上的时间统一。一般会以北京时间为标准时间
获取当前时间和未来时间戳的最初时间差后,我们就开始倒计时了,这时大家都会考虑到要用setTimeout执行来进行倒计时,可是这个在移动端的时候,会存在问题么
事实是显然的,js在ios端上会存在锁定的问题,当你手指长时间停留在屏幕上时,ios会识别并停止一切js的执行,那么当然setTimeout也就失效了,当你手指离开屏幕时,你会发现,哎,好像时间不对啊
所以我们需要对这种情况进行对应处理,需要过一段时间校验一次时间差,并重新开始倒计时,我目前采用的是60s的时候重新校验一次时间。便于保证iOS倒计时正常(当然,校验前可能仍会存在数秒的偏差,这个可能仍需处理)
其实倒计时还存在一个问题。。。setTimeout(function(){},1000)并不是严格的一秒执行一次函数,所以如果我们的倒计时是利用的setTimeout(function(){},time)这种形式的,本身倒计时时间也会存在一定偏差
当然一般人没这么死抠。。。
0 0
- 简单而不简单的倒计时
- 简约而不简单的SnackBar
- 简单的事 不简单
- 简单的设计不简单
- 简单的设计不简单
- 简约而不简单的金山WPS
- 简易而不简单的定时任务框架
- 简约而不简单的拟物化设计
- 简约而不简单的单例模式
- 简约而不简单的Django教程
- ITIL:简约而不简单
- 简约而不简单
- 简约而不简单:Dropbox
- 简约而不简单
- 【Sharing is a virtue 】设计的简约而不简单
- 【iOS】Objective-C简约而不简单的单例模式
- 简约而不简单-软件测试自动化的魅力和力量
- 几张简约而不简单的JavaScript学习树状图
- 二叉树层次遍历(C语言实现)
- PHP创建缩略图
- Realm Java 简明教程(1)
- 小纪的作业题
- 通过ios实现RSA加密解密中的 NSString+Base64.h/m相关代码
- 简单而不简单的倒计时
- 经常更换宽带账号时连接问题
- android-activity
- display port
- CodeForces 610 B - Harmony Analysis
- 数组
- 04环信聊天界面 - 加载本地聊天记录
- 通过ios实现RSA加密解密中的 RSAEncryptor.h/m相关代码
- Android 从系统图库中选择图片