欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

理解JavaScript中worker事件api

 更新時間:2015年12月25日 08:46:17   作者:微宇宙  
這篇文章主要幫助大家理解JavaScript中worker事件api,對worker事件api有一個深刻了解,感興趣的小伙伴們可以參考一下

如果你不是很了解Event事件,建議先這篇文章《理解javascript中DOM事件》。

首先,我們需要實例一個Worker的對象,瀏覽器會根據(jù)新創(chuàng)建的worker對象新開一個接口,此接口會處理客戶端與indexedDB數(shù)據(jù)庫之間的通信。這里的數(shù)據(jù)庫是指瀏覽器數(shù)據(jù)庫。如果,你需要判斷瀏覽器是否支持worker對象,詳見如下代碼?;蛘邽g覽器是否支持indexedDB數(shù)據(jù)庫,詳見同下,二者判斷最好選擇前者。因為IE不支持indexedDB 。

if(window.Worker){ dosomething }
// Worker
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB; 
if(!window.indexedDB){ dosomething }
// indexedDB

之后,worker對象會通過postMessage線程向indexedDB數(shù)據(jù)庫發(fā)送數(shù)據(jù),當(dāng)indexedDB數(shù)據(jù)庫接收到客戶端發(fā)送的數(shù)據(jù),首先把數(shù)據(jù)的鍵值儲存并記錄到indexedDB數(shù)據(jù)庫表里面,其實相當(dāng)于把數(shù)據(jù)保存在一張結(jié)構(gòu)完整的表內(nèi)。

于是,indexedDB數(shù)據(jù)庫會把接收到的數(shù)據(jù)值扔給新接口處理,當(dāng)新接口獲得數(shù)據(jù)并解析之后,會通過postMessage扔回一條數(shù)據(jù)給數(shù)據(jù)庫,數(shù)據(jù)庫接收返回的數(shù)據(jù)處理的方式和上面一樣,此時indexedDB數(shù)據(jù)庫會把返回的數(shù)據(jù)扔給客戶端接受參數(shù)的onmessage線程,主線程后面onmessage線程主要是接收傳回的數(shù)據(jù)。

var txt1 = document.querySelector("#txt1");
var txt2 = document.querySelector("#txt2");

var result = document.querySelector("#result");
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
 if(!window.indexedDB)
 {
  console.log("你的瀏覽器不支持IndexedDB");
 }
 if(window.Worker){
  var _this = new Worker("../../js/build/scroll_ten1.js");
  txt1.onchange = function(){ 
   _this.postMessage([txt1.value,txt2.value]); // e = [txt1.value,txt2.value]
   console.log("message post to work");
  }
  txt2.onchange = function(){
   _this.postMessage([txt1.value,txt2.value]); // e = [txt1.value,txt2.value]
   console.log("message post to work");
  }
  _this.onmessage = function(s){ //接收到的數(shù)據(jù) e
   result.textContent = s.data;
  }
 }


onmessage = function(e){ //e接收Worker.postmessage傳的參數(shù)
 var s = (e.data[2]*e.data[1]);
 var workerResult = "result : " + s;
 postMessage(workerResult); //Worker.onmessage進(jìn)行回調(diào)workerResult參數(shù)
}

想必大家看了以上的分析之后,肯定在想用Worker能做什么?對于這個問題,目前能解決線程的非阻塞問題,如何說起,當(dāng)用戶改變browser的的尺寸、以及拖動瀏覽器時,主線程訪問后臺數(shù)據(jù)時,并不會中斷數(shù)據(jù)之間的進(jìn)程。

支持Worker的browser有哪些?

分享一個鏈接caniuse,通過這個工具你能更加全面的看到各個瀏覽器的(hack)。

// *注Worker的首字母必須是大寫的

// *注Worker的腳本目錄必須是HTML能夠訪問到的目錄

以上就是本文的全部內(nèi)容,希望對大家深入理解JavaScript中worker事件api有所幫助。

相關(guān)文章

  • JS實現(xiàn)簡單面向?qū)ο蟮念伾x擇器實例

    JS實現(xiàn)簡單面向?qū)ο蟮念伾x擇器實例

    這篇文章主要介紹了JS實現(xiàn)簡單面向?qū)ο蟮念伾x擇器,以完整實例形式分析了JavaScript基于面向?qū)ο髮崿F(xiàn)顏色選擇器的具體步驟與實現(xiàn)技巧,需要的朋友可以參考下
    2016-04-04
  • 用js正確判斷用戶名cookie是否存在的方法

    用js正確判斷用戶名cookie是否存在的方法

    用cookie保存用戶名,記錄登錄狀態(tài),如何正確判斷該機用戶cookie是否存在呢?下面有個不錯的方法,大家可以參考下
    2014-01-01
  • chorme 瀏覽器記住密碼后input黃色背景處理方法(兩種)

    chorme 瀏覽器記住密碼后input黃色背景處理方法(兩種)

    使用chrome瀏覽器選擇記住密碼的賬號,輸入框會自動加上黃色的背景,有些設(shè)計輸入框是透明背景的,需要去除掉這個黃色的背景。下面給大家分享chorme 瀏覽器記住密碼后input黃色背景處理方法,一起看看吧
    2017-11-11
  • JS Web Flex彈性盒子模型代碼實例

    JS Web Flex彈性盒子模型代碼實例

    這篇文章主要介紹了JS Web Flex彈性盒子模型代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 原生js實現(xiàn)下拉框選擇組件

    原生js實現(xiàn)下拉框選擇組件

    這篇文章主要為大家詳細(xì)介紹了原生js實現(xiàn)下拉框選擇組件的開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 總結(jié)Javascript中數(shù)組各種去重的方法

    總結(jié)Javascript中數(shù)組各種去重的方法

    相信大家都知道網(wǎng)上關(guān)于Javascript中數(shù)組去重的方法很多,這篇文章給大家總結(jié)Javascript中數(shù)組各種去重的方法,相信本文對大家學(xué)習(xí)和使用Javascript具有一定的參考借鑒價值,有需要的下面來一起看看。
    2016-10-10
  • js實現(xiàn)帶箭頭的進(jìn)度流程

    js實現(xiàn)帶箭頭的進(jìn)度流程

    這篇文章為大家詳細(xì)主要介紹了js實現(xiàn)帶箭頭的進(jìn)度流程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • input輸入框鼠標(biāo)焦點提示信息

    input輸入框鼠標(biāo)焦點提示信息

    本文給大家分享的是一則非常常用和實用的小技巧,當(dāng)鼠標(biāo)點擊到輸入框(input)里的時候,輸入框的提示消失,鼠標(biāo)再移開,輸入框提示出現(xiàn),推薦給小伙伴們
    2015-03-03
  • bootstrap模態(tài)框?qū)崿F(xiàn)拖拽效果

    bootstrap模態(tài)框?qū)崿F(xiàn)拖拽效果

    這篇文章主要為大家詳細(xì)介紹了bootstrap模態(tài)框?qū)崿F(xiàn)拖拽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Area 區(qū)域?qū)崿F(xiàn)post提交數(shù)據(jù)的js寫法

    Area 區(qū)域?qū)崿F(xiàn)post提交數(shù)據(jù)的js寫法

    這篇文章主要介紹了在Area區(qū)域的里 實現(xiàn)post 提交數(shù)據(jù) 的js寫法,需要的朋友可以參考下
    2014-04-04

最新評論