iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Modern Web

網頁的另一個大腦:從基礎到進階掌握 Web Worker 技術 系列

Javascript 單執行緒模型使得程式的設計和邏輯相對簡單。開發者不需要擔心併發問題,避免了許多可能的錯誤。但隨著近年 AI、元宇宙、3d 技術的發展,需要利用 Javascript 大量運算的時候可能越來越多,這時就是擅長平行運算的 web worker 出場的時機了。希望藉由這一系列的文章介紹目前 web worker 的發展狀況,以及提出一些實例分析 web worker 適合用到的場景。

鐵人鍊成 | 共 30 篇文章 | 13 人訂閱 訂閱系列文 RSS系列文
DAY 11

BroadcastChannel

BroadcastChannel 是 HTML 規範中用來讓多個線程互相溝通的方式,不像前兩天介紹的 MessageChannel 只能做到兩者之間的通訊,Br...

2023-09-25 ‧ 由 bcjohn 分享
DAY 12

Transferable objects - Stream

前端大部分接觸到的資料格式最常見的就是 json,而 Stream 對前端來說應該是個比較陌生的概念,但每次對後端呼叫 api 取得資料的時候,回來的資料格式就...

2023-09-26 ‧ 由 bcjohn 分享
DAY 13

Transferable objects - ImageBitmap

ImageBitmap 表示一種能夠被繪製到 canvas 元素上的位置圖像,通常是使用 createImageBitmap() 的方式產生 可以看到 Imag...

2023-09-27 ‧ 由 bcjohn 分享
DAY 14

ImageData

昨天提到了 ImageBitmap 是一種能夠被繪製到 canvas 元素上的位置圖像,今天我們要來講另一個很像的用法 ImageData,ImageData...

2023-09-28 ‧ 由 bcjohn 分享
DAY 15

在 Web worker 中操作圖像的 ImageData

昨天介紹了 ImageData 的用法,今天來寫個範例,看看如何在 Web worker 中處理 ImageData,並增進效能吧。 範例 Demo 目的 利...

2023-09-29 ‧ 由 bcjohn 分享
DAY 16

Transferable objects - OffscreenCanvas

昨天的範例中顯示當圖片的解析度很高時,執行 getImageData 會很久的問題 (我的電腦 Chrome 瀏覽器耗時 200~300ms 左右),但如果想將...

2023-09-30 ‧ 由 bcjohn 分享
DAY 17

在 Web worker 中使用 OffscreenCanvas

昨天學習到使用 OffscreenCanvas 在 Web worker 中操作圖像,避免主線程處理 canvas 的耗時操作導致畫面卡頓,今天打算繼續優化前兩...

2023-10-01 ‧ 由 bcjohn 分享
DAY 18

共享的 Web worker - Shared worker

在今天以前所介紹的都是一般較常用到的 Dedicated worker,Dedicated worker 只能被當下創建的線程使用,而 Shared worke...

2023-10-02 ‧ 由 bcjohn 分享
DAY 19

Shared worker 的生命週期

昨天介紹了 Shared worker 的基本用法,今天打算寫個範例來了解 Shared worker 的生命週期 目的 了解如何使用 Shared work...

2023-10-03 ‧ 由 bcjohn 分享
DAY 20

在 Javascript 中共享記憶體 - SharedArrayBuffer

在這 Web worker 系列文的一開始就提到 worker 線程之間的資料傳遞使用 postMessage const worker = new Worke...

2023-10-04 ‧ 由 bcjohn 分享