WEB WORKERS ¶
- μΉ μ컀 : μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό λ°±κ·ΈλΌμ΄λμμ μ€ννκΈ° μν κΈ°μ
- μ컀 : λ°±κ·ΈλΌμ΄λμμ μ€νλλ μ½λ, UI(DOM)κ³Όλ μμ ν λΆλ¦¬λ νκ²½μμ λμ
- νμ¬ λΈλΌμ°μ μ μΉμ΄ν리μΌμ΄μ
μ΄ κ°μ§ μ€κ³μμ λ¬Έμ λ‘ μ겨λ¨
- νμ¬ λΈλΌμ°μ μ μΉμ΄ν리μΌμ΄μ
μ΄ κ°μ§ μ€κ³μμ λ¬Έμ λ‘ μ겨λ¨
- νμ¬ μΉλΈλΌμ°μ λ μΉνμ΄μ§λ₯Ό νλμ μ€λ λλ‘ μ€ν
- μ²λ¦¬ν λ΄μ©μ΄ λ§μμ§λ©΄ μ¬μ©μλ νμ΄μ§λ₯Ό μ‘°μν μ μμ
- μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Web workersλ₯Ό μ¬μ©
- web workersκ° λ©μΈ μ€λ λ(μΉ νμ΄μ§)μλ λ³λμ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ‘ μλ°μ€ν¬λ¦½νΈ μ€ν
- λ³λ ¬ μ²λ¦¬κ°λ₯
- web workersκ° λ©μΈ μ€λ λ(μΉ νμ΄μ§)μλ λ³λμ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ‘ μλ°μ€ν¬λ¦½νΈ μ€ν
- μ²λ¦¬ν λ΄μ©μ΄ λ§μμ§λ©΄ μ¬μ©μλ νμ΄μ§λ₯Ό μ‘°μν μ μμ
- μ’
λ₯
- μΌ λ μΌ : <μ컀>, νλμ μ컀 κ°μ²΄μ νλμ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€κ° μΌλμΌλ‘ λμ
- λ€ λ μΌ : <곡μ μ컀>, μ¬λ¬κ°μ μ컀 κ°μ²΄κ° νλμ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€μ λμ
- μΌ λ μΌ : <μ컀>, νλμ μ컀 κ°μ²΄μ νλμ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€κ° μΌλμΌλ‘ λμ
μ컀λ₯Ό μ΄μ©ν νλ‘κ·Έλλ° ¶
- μ컀λ μμ±μλΆν° UIμ λ€λ₯Έ μ€λ λμμ λμ
- UIμ μ컀 μ€λ λλ λ³μλ₯Ό 곡μ ν μ μλ€.
- λ°λΌμ μ컀λ DOMμ μ κ·Όν μ μλ€.
- UIμ μ컀 μ€λ λλ λ³μλ₯Ό 곡μ ν μ μλ€.
μ컀μ μμ± ¶
- μ컀 μΈν°νμ΄μ€ μμ±μμ JavaScript μμ€ νμΌμ URLμΈμλ‘ μ λ¬νλ©΄ μμ€νμΌμ λ΄λ €λ°μ λ°±κ·ΈλΌμ΄λμμ μ€ννλ€
- μ§μλ³μ, μ§μν¨μμ΄λ―λ‘ μΈλΆμμ νΈμΆ λΆκ°!
// workers.jsλ₯Ό μ€ννμ¬ μ컀λ₯Ό μμ± var worker = new Worker("worker.js");
μ컀μμ ν΅μ ¶
- μ컀μκ² λ©μΈμ§ μ‘μ
- μ컀μμ λ©μΈμ§ ν΅μ μ postMessage()λ₯Ό μ΄μ©
- μ컀μμ λ©μΈμ§ ν΅μ μ postMessage()λ₯Ό μ΄μ©
// μ컀μκ² λ©μΈμ§ hello보λ worker.postMessage("hello");
// μ컀μμμ λ©μΈμ§ μ²λ¦¬ onmessage = function(e){ // μ²λ¦¬ };
- μ컀μ λ©μΈμ§ μ‘μ
// μ μν¨μ postMessage μ¬μ© postMessage("hello");
// μ컀μ λ©μΈμ§ μ²λ¦¬ worker.onmessage = function(e){ // μ²λ¦¬ };
μ컀 μμ± ¶
- μ컀μμ± : Worker μ΄μ©
// worker.jsμ΄μ©ν΄ μμ± var worker = new Worker("worker.js");
- 곡μ μ컀 μμ± : SharedWorker μ΄μ©
- 곡μ μ컀λ μλμ°κ° λ¬λΌλ URLκ³Ό μ΄λ¦μ΄ κ°μΌλ©΄ κ°μ νλ‘μΈμ€ 곡μ
- 곡μ μ컀λ μλμ°κ° λ¬λΌλ URLκ³Ό μ΄λ¦μ΄ κ°μΌλ©΄ κ°μ νλ‘μΈμ€ 곡μ
var worker1 = new SharedWorker("worker.js", "wk"); var worker2 = new SharedWorker("worker.js", "wk");
μ컀 κ°μ²΄μ λ©μλ ¶
- onerror : μλ¬ ν¬μ°©νκΈ° μν μ΄λ²€νΈ νΈλ€λ¬
- terminate() : μ컀 κ°μ μ’
λ£
- postMessage(message, ports) : μ컀μκ² λ©μΈμ§ 보λ
- onmessage() : μ컀λ‘λΆν°μ λ©μΈμ§ μμ μ μν μ΄λ²€νΈ νΈλ€λ¬
μ컀μμ μ¬μ©κ°λ₯ν λ³μ, λ©μλ, μμ±μ ¶
- window, documentμ¬μ© λΆκ°
- onmessage(), postMessage(), onconnect()λ± μ¬μ©κ°λ₯
- (TODO : ν μΆκ° νμ)