当我们发送XMLHttpRequest时,我们总是有数百个额外的字节。在正常使用中它是好的。但是在构建需要速度的应用程序时,这对可靠性来说并不好。
function update(){
var xhr = getXMLHttp(); // Normal catch handler for XHR
xhr.open("POST", "update.php?r=" + "&chatvslog=" + user, true);
xhr.send();
window.setTimeout("update();",300);
}
请求结束确实从170到360毫秒发送。问题是我需要更快地完成这项工作。
有没有办法改进我的XMLHttpRequest或以另一种方式做到这一点?
答案 0 :(得分:4)
轮询是一种糟糕的解决方法,可以在一个小小的scalle中完成工作,但实现效率不高且难看。
现代浏览器支持WebSockets作为允许双向通信的更好方法。使用诸如node.js'Socket.IO之类的东西,你甚至可以使用高级WebSocket抽象层,它可以回退到浏览器中可用的任何东西 - 它可以使用WebSockets(首选)和Flash套接字,AJAX等技术长轮询或JSONp长轮询,无需关心使用的内容。
答案 1 :(得分:0)
这就是WebSockets的设计目标,但它尚未支持IE(虽然它将在IE 10中出现),或者其他大型浏览器的一些较旧但仍然使用的版本。
http://caniuse.com/#search=websockets
在此之前,请查看Comet: