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

uni-app下Worker的使用示例詳解

 更新時間:2024年08月08日 09:46:09   作者:吳勝ws  
這篇文章主要介紹了uni-app下Worker的使用示例詳解,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、在static目錄下創(chuàng)建一個目錄用于存放worker文件

在這里插入圖片描述

為啥要在static目錄下創(chuàng)建worker目錄呢?那是因為worker.js沒辦法在別的js中被引用,uni-app項目編譯成微信小程序代碼時會進行Tree-shaking(搖樹優(yōu)化),把那些沒被引用的js文件給剔除掉,放在static目錄下可以避免被搖樹優(yōu)化。

2、在pages.json文件中引用剛創(chuàng)建的worker目錄

注意:pages.json最后一項后面不要有逗號,否則會報錯

3、編寫worker.js(名字任意取,要在上面創(chuàng)建的workers目錄下面)

//MyWorker.js
//用于接收外部消息
worker.onMessage(function(res) {
	console.log('worker內(nèi)部線程')
	console.log(res)
	//用于發(fā)送
	worker.postMessage({
		message: '收到worker的消息'
	});
});

4、主線程中創(chuàng)建調(diào)用和銷毀Worker

1、創(chuàng)建Worker

let worker = wx.createWorker('/static/workers/MyWorker.js', {
	useExperimentalWorker: true,
});

useExperimentalWorker: true 引用官方注釋:是否使用實驗worker。在iOS下,實驗worker的JS運行效率比非實驗worker提升近十倍,如需在worker內(nèi)進行重度計算的建議開啟此選項。同時,實驗worker存在極小概率會在系統(tǒng)資源緊張時被系統(tǒng)回收,因此建議配合 worker.onProcessKilled 事件使用,在worker被回收后可重新創(chuàng)建一個。

2、發(fā)送消息給Worker線程

worker.postMessage({message:'主線程發(fā)來的消息'})

注:需要發(fā)送的消息,必須是一個可序列化的 JavaScript key-value 形式的對象。

3、監(jiān)聽Worker線程的消息

worker.onMessage((res)=>{
	console.log('主線程打印的')
	console.log(res)
})

4、結(jié)束當前Worker線程(僅限在主線程 worker 對象上調(diào)用)

worker.terminate()

5、Worker中如何引入其他js

被引入的js文件必須要放在上面創(chuàng)建的Worker目錄內(nèi)部,不然無法引用

在剛創(chuàng)建的workers文件夾下創(chuàng)建一個Test.js文件

//Test.js
function test(){
	console.log('我是外部js文件中的內(nèi)容')
}
export default{
	test
}

MyWorker.js中引入該js

import Test from 'Test.js'
//用于接收外部消息
worker.onMessage(function(res) {
	console.log('worker內(nèi)部線程')
	console.log(res)
	Test.test();//調(diào)用其他js文件中的代碼
	//用于發(fā)送
	worker.postMessage({
		message: '收到worker的消息'
	});
});

打印結(jié)果:

使用worker注意事項:

  • Workers 之間不支持發(fā)送消息。
  • Worker 的入??谖募?wx.createWorker() 時指定,開發(fā)者可動態(tài)指定 Worker 入口文件
  • Worker 內(nèi)代碼只能 require 指定 Worker 路徑內(nèi)的文件,無法引用其它路徑。
  • Worker 最大并發(fā)數(shù)量限制為 1 個,創(chuàng)建下一個前請用 Worker.terminate() 結(jié)束當前 Worker。
  • Worker 內(nèi)不支持 wx 系列的 API。

到此這篇關于uni-app下Worker的使用的文章就介紹到這了,更多相關uni-app Worker使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論