iT邦幫忙

webworker相關文章
共有 34 則文章

達標好文 技術 Web Worker 經驗分享(一)

各位「網路工作者」大家好! Web Worker 是由 W3C 以及 WHATWG 共同制定出來的API,讓 javascript 可以獨立在背景執行而不會影響...

技術 Web Worker 經驗分享(二)

那些年,我們一起讓瀏覽器當掉的日子 昨天提到了 Worker 就像是主從式架構一樣,有要求才有產出,而前後端的任務切割,就是在將商業邏輯與頁面呈現區隔開來。但隨...

鐵人賽 Modern Web DAY 26
你懂 JavaScript 嗎? 系列 第 26

技術 你懂 JavaScript 嗎?#26 程式效能(Program Performance)

本文主要會談到 web worker、SIMD 與 asm.js。 到目前為止我們只談論了如何有效的運用非同步處理模式,現在就來探討為什麼非同步處理對 Jav...

鐵人賽 Modern Web DAY 22

技術 Day22 X Web Workers

身為前端開發者,整日與 JavaScript 這門程式語言打交道,應該都知道它是一個 single-threaded 的程式語言,剛開始會覺得有點詫異,現在的...

鐵人賽 Modern Web DAY 2

技術 Web worker 介紹

Javascript 最初是設計在瀏覽器上執行的語言,而瀏覽器上會有各種的使用者操作,像是輸入文字、點擊按鈕等,這些操作最終都會反映在畫面上的渲染,為了維持畫面...

鐵人賽 Modern Web DAY 29

技術 在 Web worker 中使用 opencv.js

終於到了最後一個範例,在 第一天的文章 - 前言 提到最近工作上使用到 opencv.js,所以才有這 30 天的 web worker 系列文,有始有終,今天...

鐵人賽 Modern Web DAY 21

技術 Javascript 中的原子操作 - Atomic

昨天介紹了 SharedArrayBuffer,使用 SharedArrayBuffer 可以在不同的線程中共享記憶體,達到高效的運算功能,但隨之而來的缺點就是...

鐵人賽 Modern Web DAY 12

技術 Transferable objects - Stream

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

鐵人賽 Modern Web DAY 28

技術 使用多個 Web worker 進行平行運算 - workerpool

workerpool 是一個可以同時用在 node.js 跟 瀏覽器(web worker) 的套件,實作了 Thread pool 的概念,讓程式可以做到高效...

鐵人賽 Modern Web DAY 23

技術 瀏覽器中的消息傳遞 - postMessage

前幾天學習關於 Web worker 的知識時,我發現不同地方都會使用 postMessage 函式把訊息發送出去,但不同地方使用 postMessage 的方...

鐵人賽 Modern Web DAY 22

技術 在 Web worker 中處理音效 - AudioWorklet

什麼是 Worklet? 官方文件提到 Worklet 是輕量級的 web worker,使網路開發人員可以存取低階的渲染管道 Worklet 種類 MDN 上...

鐵人賽 Modern Web DAY 1

技術 [Day 1] 網頁的另一個大腦:從基礎到進階掌握 Web Worker 技術 - 前言

最近工作上有一些需求要將 2D 的圖片做影像處理,最後要達到類似圖片模糊的效果,而使用者可以藉由 slider 調整模糊的比例,從 0~100%,數值越大的話圖...

鐵人賽 Modern Web DAY 6

技術 postMessage 速度測試

昨天提到 postMessage 背後使用了 structuredClone 算法將資料 深複製 (deep copy) 後再進行傳遞,雖然這樣保證了資料的完整...

鐵人賽 Modern Web DAY 11

技術 BroadcastChannel

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

鐵人賽 Modern Web DAY 4

技術 在 Web worker 中使用外部套件

importScripts 在 worker 中可以使用 importScripts 將外部的套件引入進來,這樣會將 script 裡的變數都以全域的方式匯入...

鐵人賽 Modern Web DAY 25

技術 使用 modulepreload 優先下載 module worker 檔案

使用 preload 優先下載資源 不知道大家有沒有使用過 preload,preload 用來明確告知瀏覽器,某一份資源是很重要的,所以請優先下載它,使用方式...

鐵人賽 Modern Web DAY 3

技術 Dedicated worker 基本用法

Dedicated worker 是 Web worker 中的一個種類,特色是 Dedicated worker 線程只能被當下創立的主線程操作使用。而主線程...

鐵人賽 Modern Web DAY 8

技術 Transferable objects - ArrayBuffer

ArrayBuffer 大概是 Transferable objects 中最常見的一種了,雖然也是矩陣,但不同於一般使用的 Array,ArrayBuffer...

鐵人賽 Modern Web DAY 20

技術 在 Javascript 中共享記憶體 - SharedArrayBuffer

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

鐵人賽 Modern Web DAY 5

技術 使用 structuredClone 將數據複製到 Web worker

主線程與 worker 線程之間通常會使用 postMessage 傳遞資料,為避免不同的線程操作同一筆資料出現同步問題,實際上背後會執行一個叫做 struct...

鐵人賽 Modern Web DAY 27

技術 封裝 Web worker 的套件 - Comlink

今天與明天會介紹一些與 Web worker 相關的套件,今天介紹的 comlink 是 google 團隊開發的套件,目的是讓 Web worker 使用起來...

鐵人賽 Modern Web DAY 30

技術 Web worker 系列文 - 總結

一開始我們從最常使用的 web worker - Dedicated worker 開始,接著介紹使用 postMessage 在主線程與 worker 線程間...

鐵人賽 Modern Web DAY 17

技術 在 Web worker 中使用 OffscreenCanvas

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

鐵人賽 Modern Web DAY 9

技術 Transferable objects - MessagePort (Channel messaging)

MessagePort 是 HTML 中 Channel Messaging API 的接口,用途拿來進行雙向溝通傳遞資料,有點類似 addEventListe...

鐵人賽 Modern Web DAY 26

技術 小故事 - modulepreload 的來源

昨天介紹了使用 modulepreload 預先加載 module worker,可以較早取得重要的資源,用意跟 preload 是一樣的,但不知道有沒有人覺得...

鐵人賽 Modern Web DAY 7

技術 可轉移的物件 - Transferable objects

昨天我們瞭解到使用 postMessage 時,隨著傳遞的資料越大,耗費的時間就會越久,雖然在桌機上沒什麼問題,但到了手機這種低硬體的環境上,就可能會有效能問題...

鐵人賽 Modern Web DAY 24

技術 將 Web worker 內嵌於 HTML 中 - Embedded worker

在 HTML 檔案中使用 Javascript 我們知道在 HTML 使用 Javascript 大致上有兩種方式 從另一個檔案引入 js (externa...

鐵人賽 Modern Web DAY 16

技術 Transferable objects - OffscreenCanvas

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

鐵人賽 Modern Web DAY 15

技術 在 Web worker 中操作圖像的 ImageData

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

鐵人賽 Modern Web DAY 10

技術 Transferable objects - MessagePort

昨天學習了 Channel messaging 在主頁面與 iframe 間的訊息傳遞,而今天就讓我們來看看 MessagePort 怎麼在 web worke...