2012-09-28 23 views

回答

29

AJAX和WebSockets的做類似的任務,從Web瀏覽器做多線程編程 - 他們都建立通信信道到服務器。 Web工作者與他們中的任何一個都無關,他們只是JS執行的獨立線程。

AJAX比的WebSockets更成熟 - 它已經存在了更長的時間,有更廣泛的瀏覽器支持。 AJAX是面向請求的 - 你向服務器發出請求,服務器響應,連接關閉。另一方面,Websocket建立到服務器的持久連接,通過這個連接你可以在兩個方向上交換多個消息。如果你想不阻塞瀏覽器界面執行處理器密集型任務

Webworkers是有用的。

+0

謝謝,這對我很有幫助。 –

+0

這個解釋非常好 –

11

他們是不一樣的。

阿賈克斯:它是從UI渲染異步與網絡服務器交互

網絡套接字的一種方式:使用HTML5功能,您可以擴展瀏覽器的達成任何套接字服務器交互

網站工作人員:另一個HTML5功能,可幫助您使用Java腳本

8

它們不一樣。但可以一起使用它們來構建高級應用程序。

Ajax的:由於abbrevation國是異步JavaScript和XML ..用於從服務器動態加載內容呼籲。

Websockets:Websockets是HTML5中定義的功能。正如wikipedia所言:「WebSocket是一種通過單個TCP連接提供全雙工通信信道的協議。」所以這是主要用於實時通信,如視頻電話,在線聊天等。

WebWorkers:此功能也被定義HTML5。這基本上用於在Javascript中引入多線程功能。由於JavaScript是單線程編程語言,因此即使使用它完成繁重的計算任務,也會中斷或暫停。爲了克服這種破壞,Web工作者被添加到JavaScript。

你可以在裏面Webworkers執行Ajax和WebSockets的。但由於安全原因,您不能使用webworkers操作DOM。