关于setinterval和js单线程的困惑

我的个人理解

JavaScript是单线程的,使用setinterval是定时给这个单线程添加事情,那么我使用两个setinterval去请求两个不同的数据接口,就不会存在并发,按队列顺序请求数据,那么为什么使用setinterval去请求数据接口会出现卡顿

阅读 2k
3 个回答

什么卡顿?网络在pending?还是页面卡顿?
你setInterval怎么写的 你要实现什么效果?
最好贴出相应的代码 可以分析

js多线程需要web worker配合,写多少个setInterval都不会造成多线程,所有任务都会依次排队进行,页面卡顿纯粹是循环调用的太频繁,或者接口过慢。

JS 处理异步任务的方式类似于,在等电饭锅焖米饭的时间段里你可以炒菜,而不是傻等米饭焖好才去炒菜。
但是你的能力终归是有极限的,如果让你焖几十锅饭,这边米还没淘好,那边饭都糊了,这时候你就“卡顿”了。
setInterval + XHRHTTPRequest 恰似隔一小会就让你再焖一锅米饭。而同页面同域名可以并发的请求数量是有限的,chrome 貌似是六个请求,等于你只有六个电饭锅,但是做饭的任务一直在增加。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题