ajax 请求是否会降低浏览器的速度?
Is ajax request slowing down the browser?
我尝试同时发送 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 requests/second 似乎是糟糕的设计。您需要对您的请求进行分组并发送更少的请求。动画使情况变得更糟。我相信有这么多请求没有有效的解释。是的,您可以切换到 WebSocket,但请确保您的通信不会重复消息并且不会发送可以作为单个消息发送的多条消息。
我尝试同时发送 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 requests/second 似乎是糟糕的设计。您需要对您的请求进行分组并发送更少的请求。动画使情况变得更糟。我相信有这么多请求没有有效的解释。是的,您可以切换到 WebSocket,但请确保您的通信不会重复消息并且不会发送可以作为单个消息发送的多条消息。