- 时间:2022-08-10 00:54 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:setTimeout的延时为0时多个浏览器的区别
由于不是很了解浏览器的内部执行策略,本文只能是通过前端一些测试依稀猜测些结论:
[b]1)测试举例
[/b]做了两个例子:
1-1)脚本在页面中直接执行,通过刷新看结果
[url=http://www.1sucai.cn/article/30363.htm]JavaScript可否多线程? 深入理解JavaScript定时机制[/url]);
此结论也印证很火时候用setTimeout做动画不流畅的原因等。
顺便在此贴出背光的一副图很能说明问题:
[img]http://files.jb51.net/file_images/article/201205/201205231844293.jpg[/img]
3-2)测试偶尔的很大值,也有可能是js主执行线程中做了其他事情,如GC等。因为大值重复出现几率很少。
总结:其实我是没有得出结论,只是好奇,然后猜测,看看可能是情况和结果,希望大家批评指正。或者有结论的答复我。
另外:setTimout函数中第二个参数如果为负数,则和0具有一样的效果,如果setTimeout(function(){console.log('test')},-100);等同于setTimeout(function(){console.log('test')},0)。
我以为会报错,结果所有浏览器都没有报错。