XMLHttpRequest与Socket及其他方法的比较

3

我看到XMLHttpRequest最适合更新频率为30秒或更长的内容。同一篇文章提到,需要更快频率的Web应用程序应该使用套接字。我找不到提到这一点的文章/书籍(如果有人可以发布讨论此问题的文章链接,我会非常感激)。您对XMLHttpRequest和套接字的经验是否支持上述说法?还应考虑哪些浏览器与服务器之间的连接类型?

3个回答

3
Javascript没有真正的套接字通信方式。如果你只能使用Javascript(没有SWF助手、ActiveX或其他技术),那么XMLHttpRequest是你最好的选择。
由于解析和形成请求以及解析结果所涉及的开销,XMLHttpRequest不太适合更频繁的更新(至少在理论上是这样)。理论上,Socket连接会给你一个管道回到服务器,而不需要通过所有请求生成。
使用Sockets的缺点(除了Javascript不直接支持它们之外)是,如果你为Socket连接返回的数据使用自定义序列化格式,只有你编写的代码才能消费结果(除非你公开你的序列化格式)。这可能对你来说不是问题,但对于一些人来说,这是一个停滞不前的问题......
以下是Javascript中使用SWF Helper的Socket的一个小演示: SocketJS

2
答案不仅仅在于更新频率,同时并发用户的数量也很重要。使用 Comet(这是一个可以让你了解更多文章的关键词)会占用服务器连接,可能无法很好地扩展。现代Web服务器能够处理更多的连接,但你需要在自己的环境中进行测试。
对我来说,甚至每30秒使用AJAX都太频繁了。我的限制可能在一分钟左右。

-1

这篇文章现在应该被视为过时的了。现代浏览器处理请求速度快到可以达到1秒。看看谷歌搜索能够多快地猜测你的搜索内容,只需要一个简单的XMLHttpRequest调用,没有Flash,也没有ActiveX。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接