关于setinterval和js单线程的困惑
我的个人理解
JavaScript是单线程的,使用setinterval是定时给这个单线程添加事情,那么我使用两个setinterval去请求两个不同的数据接口,就不会存在并发,按队列顺序请求数据,那么为什么使用setinterval去请求数据接口会出现卡顿
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
什么卡顿?网络在pending?还是页面卡顿?
你setInterval怎么写的 你要实现什么效果?
最好贴出相应的代码 可以分析
js多线程需要web worker配合,写多少个setInterval都不会造成多线程,所有任务都会依次排队进行,页面卡顿纯粹是循环调用的太频繁,或者接口过慢。
JS
处理异步任务的方式类似于,在等电饭锅焖米饭的时间段里你可以炒菜,而不是傻等米饭焖好才去炒菜。但是你的能力终归是有极限的,如果让你焖几十锅饭,这边米还没淘好,那边饭都糊了,这时候你就“卡顿”了。
setInterval + XHRHTTPRequest
恰似隔一小会就让你再焖一锅米饭。而同页面同域名可以并发的请求数量是有限的,chrome 貌似是六个请求,等于你只有六个电饭锅,但是做饭的任务一直在增加。