我尝试同时发送ajax请求并执行GUI动画(每秒大约150个请求)。第一次做的时候还好,刷新页面或者重启浏览器动画就会变得很卡顿。
因此,我尝试删除 ajax 回调中的所有内容,但浏览器在等待响应时仍然表现得非常缓慢。我还尝试了 jquery $.get,并将 async 设置为“true”,但问题仍然存在。
但是,如果我将ajax改为websocket,这个问题就解决了。那是不是说,js发送的ajax请求会影响性能呢?我想解决这个问题,谢谢!
代码:
var i = 0;
var f = setInterval(function(){
// url is an array
addItem(url[i]);
i++;
if(i >=url.length) clearInterval(f);
},33);
// send ajax requests
function addItem(url){
var xml = new XMLHttpRequest();
xml.open('GET',url,true);
xml.send();
xml.onreadystatechange = function(){
if(xml.readyState == 4 && xml.status==200){
// do nothing
}
}
}
最佳答案
每秒 150 个请求似乎是糟糕的设计。您需要对请求进行分组并减少发送数量。动画让情况变得更糟。我相信没有任何有效的解释可以提出这么多的要求。是的,您可以切换到 WebSocket,但请确保您的通信不会重复消息,也不会发送可以作为单个消息发送的多条消息。
关于javascript - ajax 请求是否会降低浏览器速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28001501/