我的个人理解
JavaScript是单线程的,使用setinterval是定时给这个单线程添加事情,那么我使用两个setinterval去请求两个不同的数据接口,就不会存在并发,按队列顺序请求数据,那么为什么使用setinterval去请求数据接口会出现卡顿
我的个人理解
JavaScript是单线程的,使用setinterval是定时给这个单线程添加事情,那么我使用两个setinterval去请求两个不同的数据接口,就不会存在并发,按队列顺序请求数据,那么为什么使用setinterval去请求数据接口会出现卡顿
js多线程需要web worker配合,写多少个setInterval都不会造成多线程,所有任务都会依次排队进行,页面卡顿纯粹是循环调用的太频繁,或者接口过慢。
JS
处理异步任务的方式类似于,在等电饭锅焖米饭的时间段里你可以炒菜,而不是傻等米饭焖好才去炒菜。
但是你的能力终归是有极限的,如果让你焖几十锅饭,这边米还没淘好,那边饭都糊了,这时候你就“卡顿”了。setInterval + XHRHTTPRequest
恰似隔一小会就让你再焖一锅米饭。而同页面同域名可以并发的请求数量是有限的,chrome 貌似是六个请求,等于你只有六个电饭锅,但是做饭的任务一直在增加。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
什么卡顿?网络在pending?还是页面卡顿?
你setInterval怎么写的 你要实现什么效果?
最好贴出相应的代码 可以分析