[英]Browser-side node.js or non-blocking javascript?
我着迷於非阻塞架構。 雖然我沒有使用過Node.js,但從概念上我已經掌握了它。 另外,我一直在開發事件驅動的Web應用程序,因此我對事件編程有基本的了解。
如何在瀏覽器中編寫非阻塞JavaScript? 我想這在一定程度上與Node的實現方式有所不同。 例如,我的應用程序允許用戶加載大量數據(序列化為JSON)。 解析此數據以重新構成應用程序狀態。 這是一項繁重的操作,可能會導致瀏覽器鎖定一段時間。
我相信使用網絡工作者是一種方法。 (這似乎是顯而易見的選擇,但是,我相信Node可以在不使用Web Workers的情況下實現非阻塞,事件驅動的體系結構,因此我想肯定還有另一種方式。)我相信計時器也可以發揮作用。 我閱讀了有關TameJS和其他一些擴展javascript語言的庫的信息。 我對使用本機javascript而不引入新語言語法的javascript庫感興趣。
鏈接到資源,庫和實際示例非常受贊賞。
編輯:
了解了更多信息,我意識到我在說的是“未來”一詞。 jQuery實現了這一點,但是它始終使用XHR來調用服務器,服務器在返回結果之前先執行服務器的處理,而我所做的是在不調用服務器的情況下做同樣的事情,客戶端在非阻塞的情況下進行處理方式。
三是在瀏覽器上執行非阻塞工作的兩種方法
可憐的人的線程:
您可以使用一些技巧:
setTimeout
模擬時間拼接。 這基本上意味着,在每次“成批”工作之后,您都可以通過調用setTimeout(doMore, 10)
給瀏覽器一些響應的空間。 這基本上是以一種非常差的非優化方式編寫您自己的流程調度程序,而是使用Web worker
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.