新聞中心
這里有您想知道的互聯網營銷解決方案
創(chuàng)新互聯Angular教程:AngularWebWorker
用 Web Worker 處理后臺進程
Web Worker 允許你在后臺線程中運行 CPU 密集型計算,解放主線程以更新用戶界面。如果你發(fā)現你的應用會進行很多計算,比如生成 CAD 圖紙或進行繁重的幾何計算,那么使用 Web Worker 可以幫助你提高應用的性能。

CLI 不支持在 Web Worker 中運行 Angular。
添加一個 Web Worker
要把 Web Worker 添加到現有項目中,請使用 Angular CLI ?ng generate? 命令。
ng generate web-worker 你可以在應用的任何位置添加 Web Worker。比如,要把一個 Web Worker 添加到根組件 ?src/app/app.component.ts?,請運行如下命令。
ng generate web-worker app該命令會執(zhí)行以下操作。
- 把你的項目配置為使用 Web Worker,如果還沒有的話。
- 把如下腳手架代碼添加到 ?
src/app/app.worker.ts? 以接收消息。 - 把如下腳手架代碼添加到 ?
src/app/app.component.ts? 以使用這個 Worker。
addEventListener('message', ({ data }) => {
const response = `worker response to ${data}`;
postMessage(response);
});if (typeof Worker !== 'undefined') {
// Create a new
const worker = new Worker(new URL('./app.worker', import.meta.url));
worker.onmessage = ({ data }) => {
console.log(`page got message: ${data}`);
};
worker.postMessage('hello');
} else {
// Web workers are not supported in this environment.
// You should add a fallback so that your program still executes correctly.
}生成這個初始腳手架之后,你必須把代碼重構成向這個 Worker 發(fā)送消息和從 Worker 接收消息,以便使用 Web Worker。
某些環(huán)境或平臺(比如服務端渲染中使用的 ?
@angular/platform-server? 不支持 Web Worker。為了確保你的應用能夠在這些環(huán)境中工作,你必須提供一個回退機制來執(zhí)行本來要由這個 Worker 執(zhí)行的計算。
網頁題目:創(chuàng)新互聯Angular教程:AngularWebWorker
文章源于:http://m.fisionsoft.com.cn/article/dpccjoo.html


咨詢
建站咨詢
