H5W3
当前位置:H5W3 > 问答 > 正文

关于setinterval和js单线程的困惑

我的个人理解

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

回答

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

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

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

未经允许不得转载:H5W3 » 关于setinterval和js单线程的困惑

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址