0

当我们发送一个 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 或以另一种方式做到这一点?

4

2 回答 2

4

轮询是一种糟糕的解决方法,它可以在小范围内完成这项工作,但实施起来效率不高且难看。

现代浏览器支持 WebSockets 作为允许双向通信的更好方式。使用诸如 node.js 的Socket.IO之类的东西,您甚至可以使用高级 WebSocket 抽象层,该抽象层回退到浏览器中可用的任何东西——它可以使用 WebSockets(首选)和诸如 Flash 套接字、AJAX 长等技术——轮询或 JSONp 长轮询,而您不必关心使用了什么。

于 2012-09-07T22:28:41.600 回答
0

这就是 WebSockets 的设计目的,但它尚不支持 IE(尽管它在 IE 10 中提供)或其他大型浏览器的一些较旧但仍在使用的版本。

http://caniuse.com/#search=websockets

在那之前,看看彗星:

http://en.wikipedia.org/wiki/Comet_(编程)

于 2012-09-07T22:28:55.720 回答