js定时器每秒执行一次,为啥时间会不准?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js定时器每秒执行一次,为啥时间会不准?相关的知识,希望对你有一定的参考价值。
js定时器每秒执行一次,为什么时间会不准?
js是单线程的,主线程之外有个任务队列用来放异步任务,定时器就是异步的操作,定时器设置的时间,是指在1000毫秒后,可以调用回调函数得到异步操作的结果,但是必须保证主线程中的同步任务已经全部执行完毕,如果主线程还有同步任务在执行,即使1000毫秒到了,也不会去读取异步的任务队列,就是说,这个定时器等待的最短时间是1000毫秒。 参考技术A 一看楼下就不会 还瞎bb 还西安天融信教育 真辣鸡 js定时器是不准确的 为什么 因为js是无阻塞架构 所有代码存在一个排队问题 最简单的测试就是 定时器0不是真的立即执行 必须等待整个代码块结束才排序的执行 所以系统时间到达定时器指定时间的时候 不一定正好排到你js的代码 js很难写出一个精准时钟 为什么要怎么设计 这种设计使得js无比强大的异步机制和I/O并非能力 在处理高并发的情况时 无论多少人同时请求也不会因为线程锁死 而丢失响应本回答被提问者采纳 参考技术B 这个肯定是准确的。而你打印的是获取的是当前点击开始运行的时间,和定时器对应的时间是不一样的。JS 定时器
定时器:
window.setTimeout(function(){},间隔时间毫秒);
- 定时炸弹,延迟执行,只执行一次
window.setInterval(function(){},间隔的时间毫秒);
- 无限循环,每一次循环有间隔时间,一般不要小于20毫秒
- 它是有返回值的,可以用一个变量来接收这个定时器对象
window.clearInterval(要关闭的定时器对象);
一旦执行这句代码,会立刻停止此定时器对象的执行
对象.offset+样式 这里是代表的是当前给宽度
例如:
以上是关于js定时器每秒执行一次,为啥时间会不准?的主要内容,如果未能解决你的问题,请参考以下文章