webworker实现不需要引用外部js文件运行
摘要:应用场景 ==需要把worker代码和业务代码写到一个文件内== const code = ` onmessage = function(e { let { data } = e; let max = Math.max(data[0], data[data.length -1 ] postMessage({data, max} }` // 做法一: ObjectUrl const blob = new Blob([code], { type: 'application/javascript' } const url = URL.createObjectURL(blob console.log(url // blob:null/82bcf279-3f19-43f4-96c0-207171f8f612 // 做法二:DataUrl const url = `data:application/javascript;utf8,${code}` console.log(url // data:application/javascript;utf8,onmessage = function(e {let { data } = e;let max = Math.max(data[0], data[data.length -1 ] postMessage({data, max} } const worker = new Worker(url worker.onmessage = function({data} { console.log(`${data.data}中最大的值为${data.max}` } worker.postMessage([Math.floor(Math.random( * 15 , Math.<!--autointro-->...
应用场景
需要把worker代码和业务代码写到一个文件内
const code = `
onmessage = function(e){
let { data } = e;
let max = Math.max(data[0], data[data.length -1 ])
postMessage({data, max})
}`
// 做法一: ObjectUrl
const blob = new Blob([code], { type: 'application/javascript' })
const url = URL.createObjectURL(blob)
console.log(url) // blob:null/82bcf279-3f19-43f4-96c0-207171f8f612
// 做法二:DataUrl
const url = `data:application/javascript;utf8,${code}`
console.log(url)
// data:application/javascript;utf8,onmessage = function(e){let { data } = e;let max = Math.max(data[0], data[data.length -1 ]) postMessage({data, max})}
const worker = new Worker(url)
worker.onmessage = function({data}){
console.log(`${data.data}中最大的值为${data.max}`)
}
worker.postMessage([Math.floor(Math.random() * 15), Math.floor(Math.random() * 15)])
本文链接:https://blog.smallhao.fun/?id=16 转载需授权!
Chen’Blog版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!