在html5中,多线程worker和异步ajax有什么区别?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
多執行緒是屬於並發範疇,而異步是資料請求方式的範疇,與同步相對。
同意樓上的解釋。它們之間的差異大了,從具體使用場景來說,耗CPU的任務可以移到worker中處理,ajax主要是IO費時間,為了確保不讓程式碼阻塞,所以非同步處理,等資料到達時再通知程式.這是在html5中的變通方法,因為ajax是比較早實現的,而worker是比較新的一個概念,可以說worker的功能是覆蓋ajax的,只是由於HTML的不斷發展自然出現了這樣的問題。 在其它語言中,一般費時任務都放在其它線程中,以避免阻塞主線程。而不管它是費CPU還是費IO。 總之,這都是HTML的錯。你大可以把網頁請求也放在worker中處理,但不幸的是,支援worker的瀏覽器並不多。
多執行緒是屬於並發範疇,而異步是資料請求方式的範疇,與同步相對。
同意樓上的解釋。它們之間的差異大了,從具體使用場景來說,耗CPU的任務可以移到worker中處理,ajax主要是IO費時間,為了確保不讓程式碼阻塞,所以非同步處理,等資料到達時再通知程式.這是在html5中的變通方法,因為ajax是比較早實現的,而worker是比較新的一個概念,可以說worker的功能是覆蓋ajax的,只是由於HTML的不斷發展自然出現了這樣的問題。
在其它語言中,一般費時任務都放在其它線程中,以避免阻塞主線程。而不管它是費CPU還是費IO。
總之,這都是HTML的錯。你大可以把網頁請求也放在worker中處理,但不幸的是,支援worker的瀏覽器並不多。