Ajax vs. Web套接字与Web Workers

时间:2012-09-28 18:09:10

标签: ajax html5 web

这三者有什么区别?他们似乎完全一样。为什么以及何时选择使用一种方法而不是另一种方法?

3 个答案:

答案 0 :(得分:37)

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

AJAX比websockets更成熟 - 它的使用时间更长,浏览器支持更广泛。 AJAX是面向请求的 - 您向服务器发出请求,服务器响应,并且连接已关闭。另一方面,Websockets建立了与服务器的持久连接,通过它可以在两个方向上交换多条消息。

如果您想在不阻止浏览器界面的情况下执行处理器密集型任务,Web工作人员非常有用。

答案 1 :(得分:14)

它们不一样。

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

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

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

答案 2 :(得分:12)

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

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

Websockets:Websockets是HTML5中定义的功能。维基百科指出" WebSocket是一种通过单个TCP连接提供全双工通信信道的协议。"所以这主要用于实时通信,如视频通话,在线聊天等。

WebWorkers:此功能也在HTML5中定义。这基本上用于在Javascript中实现多线程功能。由于javascript是单线程编程语言,只要使用它完成繁重的计算任务,它就会中断或暂停。为了克服这种破坏,Webworkers被添加到javascript。

您可以在Webworkers中执行Ajax和Websockets。但是出于安全原因,您无法使用Web工作人员操纵DOM。