<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      多線程的JavaScript: Web Worker

      Web Worker是 HTML5推出的標準

      Web Workers makes it possible to run a script operation in a background thread separate from the main execution thread of a web application.

      優點

      允許 JavaScript 腳本創建多個線程,從而充分利用 CPU 的多核計算能力,不會阻塞主線程 (一般指 UI 渲染線程) 的運行, 兼容性良好,基本覆蓋了所有主流瀏覽器

      局限

      Web Worker本質上沒有突破JS的單線程的性質,Web Worker腳步不能直接操作DOM節點, 不能使用絕大多數的BOM API。 上下文環境是DedicatedWorkerGlobalScope 而不是Window。 運行Worker的實際上是一個沙箱,跑的是與主線程完全獨立的JavaScript文件。

      使用場景

      作為主線程的附屬,完成高 CPU 計算型的數據處理,再通過線程間通信將執行結果傳回給主線程。在整個過程中,主線程仍然能正常地相應用戶操作,從而很好地避免頁面的卡頓現象。

      具體場景:

      • 預加載數據:可以使用Worker提前加載數據,實現秒開
      • 拼寫檢查
      • 加密: 有時候加密會非常耗時。
      • 漸進式網絡應用PWA: 例如:通過與IndexDB的整合實現離線訪問

      如何使用

      uniapp 平臺web Worker使用

      新建

      const worker = new Worker("./worker.js");
      

      通信

      // main.js
      const worker = new Worker("./worker.js");
      
      // 主線程發送消息
      worker.postMessage({ data: '黃某還是挺不錯的' });
      
      // 主線程接收消息
      worker.onmessage = (e) => {
          const { data } = e;
          if (!data) return;
          console.log(data);
      }
      
      // worker.js
      // worker線程接收消息
      self.addEventListener('message', (e) => {
          const { data } = e;
          if (!data) return;
          // worker線程發送消息
          self.postMessage({data: 'worker received data'})
      });
      

      注: Worker 中,this.xx, self.xx 與直接使用 xx,其作用域都指向 worker 的全局變量 DedicatedWorkerGlobalScope ,可以互換

      銷毀

      兩種方式

      // 第一種:主線程通知銷毀
      // main.js
      worker.terminate();
      
      // worker.js
      self.close();
      

      Worker加載腳本

      importScripts('script1.js');
      // 或者可以加載多個
      importScripts('script1.js', 'script2.js');
      

      錯誤處理

      主線程可以監聽Worker是否發生錯誤

      worker.onerror(function (event) {
        console.log([
          'ERROR: Line ', e.lineno, ' in ', e.filename, ': ', e.message
        ].join(''));
      });
      
      // 內部也可以監聽error事件
      worker.addEventListener('error', function (event) {
        // ...
      });
      

      參考:

      posted @ 2020-12-11 01:04  weiQLog  閱讀(572)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲熟女乱色一区二区三区| 少妇撒尿一区二区在线视频| 亚洲一区二区三区自拍天堂| 无码天堂亚洲国产AV| 卢龙县| 亚洲熟妇熟女久久精品综合| 亚洲一线二线三线品牌精华液久久久 | 午夜DY888国产精品影院| A级毛片100部免费看| 日韩深夜视频在线观看| 人妻少妇精品视频无码综合| 国产美女高潮流白浆视频| 高级艳妇交换俱乐部小说| 日本一区二区三本视频在线观看 | 99热精品国产三级在线观看| 视频一区二区不中文字幕| 家庭乱码伦区中文字幕在线| 亚洲av永久无码精品漫画| 中文字幕制服国产精品| 国产精品午夜福利精品| 少妇激情一区二区三区视频小说| 久久永久视频| 国产欧美日韩精品丝袜高跟鞋| 亚洲国产成人一区二区在线| 男女性杂交内射女bbwxz| 又黄又刺激又黄又舒服| 免费人成视频网站在线18| 66亚洲一卡2卡新区成片发布| 亚洲欧洲久久激情久av| 日产国产一区二区不卡| 欧美黑人添添高潮a片www| 亚洲性人人天天夜夜摸18禁止| 国产中文三级全黄| 久久精品国产99国产精品澳门 | 国产成人黄色自拍小视频| 久久精品国产亚洲不av麻豆| 国产办公室秘书无码精品99| 内射视频福利在线观看| 被黑人伦流澡到高潮HNP动漫 | 少妇伦子伦精品无吗| 亚洲av鲁丝一区二区三区黄|