XMLHttpRequest vs Socket vs其他一些方法

时间:2009-06-30 14:40:17

标签: ajax web-applications sockets xmlhttprequest

我读到XMLHttpRequests最适合更新频率为30秒或更长的内容。同一篇文章提到需要更快频率的网络应用应该使用套接字。我找不到提到这个的文章/书(如果有人可以发布链接到讨论这个的文章,我会很感激)。您对XMLHttpRequest和套接字的体验是否支持上述声明?应该考虑浏览器和服务器之间还有哪些其他类型的连接?

3 个答案:

答案 0 :(得分:3)

Javascript没有办法进行真正的套接字通信。如果你只是锁定了Javascript(没有SWF助手,ActiveX或其他技术),那么XMLHttpRequest是你最好的选择。

由于解析和形成请求以及解析结果所涉及的开销,XMLHttpRequest不太适合更频繁的更新(理论上至少)。从理论上讲,Socket连接可以为您提供回管服务器的管道,而无需完成所有请求生成。

使用套接字的缺点(除了Javascript不直接支持它们的事实)是,如果对通过Socket连接返回的数据使用自定义序列化格式,则只有您编写的代码才会消耗结果(除非你公开你的序列化格式)。这对你来说可能不是问题,但对某些人来说这是一个显而易见的事情......

这是一个带有SWF助手的Javascript中的套接字演示:

SocketJS

答案 1 :(得分:2)

答案还有更新频率。并发用户的数量也很重要,因为使用Comet(这是将引导您访问更多文章的关键字)会占用服务器连接,并且可能无法扩展。现代Web服务器更擅长处理更多连接,但您需要在自己的环境中进行测试。

对我来说,即使使用AJAX也经常需要30秒。我的限制可能在一分钟左右。

答案 2 :(得分:-1)

现在应该认为这篇文章已经过时了。现代浏览器可以快速处理1秒钟的请求。看看谷歌猜测你的搜索速度有多快。一个简单的XMLHttpRequest调用。没有闪光。没有ActiveX。