当前位置: 首页 > 知识库问答 >
问题:

当WebSockets可用时,为什么要使用AJAX?

从经略
2023-03-14

我使用WebSockets已经有一段时间了,我选择利用Node server和WebSockets为我在大学的最后一年的项目创建一个敏捷的项目管理工具。我发现使用WebSockets使我的应用程序每秒可以处理的请求数增加了624%。

共有1个答案

司徒杜吟
2023-03-14

WebSockets并不打算取代AJAX,严格来说甚至不是Comet/Long-Poll的替代品(尽管在许多情况下这是有意义的)。

WebSockets的目的是在浏览器和服务器之间提供低延迟、双向、全双工和长时间运行的连接。WebSockets为使用HTTP和AJAX无法实现的浏览器应用程序打开了新的应用程序域(交互式游戏、动态媒体流、与现有网络协议的桥接等)。

但是,WebSockets和Ajax/Comet在目的上肯定有重叠。例如,当浏览器希望得到服务器事件的通知(即push)时,Comet技术和WebSockets当然都是可行的选择。如果您的应用程序需要低延迟的推送事件,那么这将是支持WebSockets的一个因素。另一方面,如果您需要与现有的框架和已部署的技术(OAuth、RESTful API、代理、负载均衡器)共存,那么这将是支持Comet技术的一个因素(就目前而言)。

另外,一些答案表明WebSockets的缺点之一是有限的/混合的服务器和浏览器支持。让我稍微分散一下。虽然iOS(iPhone,iPad)仍然支持较旧的协议(Hixie),但大多数WebSockets服务器同时支持Hixie和HYBI/IETF6455版本。大多数其他平台(如果它们还没有内置支持)可以通过html" target="_blank">web-socket-js(基于Flash的polyfill)获得WebSockets支持。这涵盖了绝大多数web用户。另外,如果将Node用于服务器后端,那么考虑使用socket.io(其中包括web-socket-js)作为后退,如果连它都不可用(或禁用),那么它将回到使用给定浏览器可用的任何Comet技术。

更新:IOS6现在支持当前的HYBI/IETF6455标准。

 类似资料:
  • 问题内容: 我已经使用WebSockets一段时间了,我选择使用Node服务器和WebSockets为我在大学的最后一年的项目创建一个敏捷项目管理工具。我发现使用WebSockets可以使应用程序每秒处理的请求数量增加624%。 但是,自启动项目以来,我已经阅读了安全漏洞,并且某些浏览器默认选择禁用WebSocket。 这使我想到了一个问题: 当WebSocket似乎在降低延迟和资源开销方面做得很

  • 如果我可以使用在一行中打印所需内容,那么我很难理解为什么我需要。

  • 然后用Gson lib将响应转换为我们需要的对象。 这来自Square/OKHTTP文档: 它的请求/响应API是用流畅的构建器和不变性设计的。它同时支持同步阻塞调用和带有回调的异步调用

  • 根据我的理解,有两个主要的Java类能够执行伪随机性活动:类和类。两者都生成伪随机数。但是,类生成加密安全的数字。 我唯一的解释是类比类运行得更快。这是真的吗?如果不是,那么为什么许多Java程序员更喜欢类而不是类呢?

  • 本文向大家介绍为什么要使用 kafka,为什么要使用消息队列?相关面试题,主要包含被问及为什么要使用 kafka,为什么要使用消息队列?时的应答技巧和注意事项,需要的朋友参考一下 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。 解耦和扩展性:项目开始的

  • 问题内容: 我注意到,Oracle JDK中使用了许多Java 8方法,如果给定的对象(参数)为,则会在内部抛出该方法。 但是,如果取消引用对象,则将被抛出。那么,为什么要做这个额外的null检查并抛出 ? 一个明显的答案(或好处)是它使代码更具可读性,我同意。我很想知道在方法开始时使用的其他原因 。 问题答案: 因为您可以这样做使事情变得 明确 。喜欢: 或更短: 现在您 知道了 : 当 成功使