代码之家  ›  专栏  ›  技术社区  ›  Paul Kelly

XMLHttpRequest vs Socket vs其他方法

  •  2
  • Paul Kelly  · 技术社区  · 15 年前

    我了解到XMLHttpRequests最适合更新频率为30秒或更长的内容。同一篇文章提到,需要更快频率的Web应用程序应该使用套接字。我找不到提到这一点的文章/书(如果有人可以发布讨论这一点的文章的链接,我会很感激)。您在xmlhttpRequest和sockets方面的经验是否支持上述声明?应该考虑浏览器和服务器之间的其他类型的连接?

    3 回复  |  直到 15 年前
        1
  •  3
  •   Justin Niessner    15 年前

    javascript无法进行真正的套接字通信。如果您仅锁定到javascript(没有SWF助手、ActiveX或其他技术),那么xmlhttpRequest是您的最佳选择。

    XMLHttpRequest不太适合更频繁的更新(至少在理论上是这样),因为解析、形成请求和解析结果时会产生开销。理论上,一个套接字连接将为您提供一个回到服务器的管道,而不需要经过所有的请求生成。

    使用套接字的缺点(除了javascript不直接支持它们之外)是,如果对通过套接字连接返回的数据使用自定义序列化格式,则只有编写的代码才能使用结果(除非公开序列化格式)。这对你来说可能不是问题,但对某些人来说,这是个阻碍展示的因素…

    下面是一个带有swf助手的javascript中套接字的演示:

    SocketJS

        2
  •  2
  •   D'Arcy Rittich    15 年前

    答案不仅仅是更新频率。并发用户的数量也很重要,因为使用 Comet (这是将引导您阅读更多文章的关键字)会耗尽服务器连接,并且可能无法扩展。现代的Web服务器在处理更多的连接方面做得更好,但是您需要在自己的环境中进行测试。

    对我来说,即使是30秒也太频繁了,无法使用Ajax。我的极限可能在一分钟左右。

        3
  •  -1
  •   Hawk    9 年前

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