27

这三个有什么区别?他们似乎在做同样的事情。为什么以及何时选择使用一种方法而不是另一种方法?

4

4 回答 4

43

AJAX 和 websocket 执行类似的任务——它们都建立了到服务器的通信通道。Web Worker 与它们中的任何一个都无关,它们只是 JS 执行的独立线程。

AJAX 比 websockets 更成熟——它的存在时间更长,并且拥有更广泛的浏览器支持。AJAX 是面向请求的——你向服务器发出请求,服务器响应,然后关闭连接。另一方面,Websockets 建立到服务器的持久连接,您可以在该连接上双向交换多条消息。

如果您想在不阻塞浏览器界面的情况下执行处理器密集型任务,Webworkers 非常有用。

于 2012-09-28T18:23:21.247 回答
17

他们不一样。但是可以一起使用它们来构建高级应用程序。

Ajax:States 是异步 javascript 和 xml.. 的缩写,用于在调用时从服务器动态加载内容。

Websockets:Websockets 是 HTML5 中定义的特性。正如维基百科所说,“WebSocket 是一种通过单个 TCP 连接提供全双工通信通道的协议。” 所以这主要用于实时通信,如视频通话、实时聊天等。

WebWorkers:这个特性也在 HTML5 中定义。这主要用于在 Javascript 中引入多线程功能。由于 javascript 是一种单线程编程语言,因此只要使用它完成繁重的计算任务,它就会中断或暂停。为了克服这种破坏,将 Webworkers 添加到 javascript 中。

您可以在 Webworkers 中执行 Ajax 和 Websockets。但是由于安全原因,您不能使用 webworkers 操作 DOM。

于 2014-11-26T12:41:53.007 回答
15

它们是不相同的。

Ajax:它是一种从 UI 渲染器异步与 Web 服务器交互的方式

Web Sockets:一种 HTML5 功能,您可以使用它与任何扩展浏览器范围的 Socket 服务器进行交互

Web Workers:另一个 HTML5 功能,可帮助您使用 Java Script 从 Web 浏览器进行多线程编程

于 2012-09-28T18:15:58.293 回答
1

AJAX:示例:Google 搜索栏 - 在您键入时出现建议。这是 AJAX 的实际应用。

IT 允许网页与幕后的“服务器”对话,让您无需离开 URL 即可更新网页。回到过去的网络时代,如果您想在网页上显示不同的内容,用户将不得不导航到不同的 URL:不再使用 AJAX。这个概念已经通过单页应用程序和应用程序(如 React、Vue、Elm 等)提升到了一个新的水平。

网络工作者: 当您需要进行密集计算时——如果您要求网页将 Pi 计算到小数点后 100000 位:这可能需要一段时间。网页可能会冻结,您可能会损失 $$。因此,互联网爱好者认为把所有的辛苦工作都交给“工人”来做是个好主意。如果你这样做了,那么工作就可以完成,而不会阻止你的网页,也不会让它感觉缓慢/迟缓。

Websockets:这类似于 AJAX。您的网页与您的服务器对话,并且您的服务器响应 - 除非您这样做,就像您在打电话一样。您的用户的浏览器和您的服务器之间存在“连接”。AJAX 不存在这种“连接”:在这种情况下,您有一个简单的请求和一个从服务器返回的响应。换句话说,如果您想持续进行视频会议或流式传输股市数据:使用 websockets 可能比 AJAX 更好。

于 2021-11-01T22:12:23.757 回答