@@ -53,7 +53,7 @@ <h1>Web Worker应用场景-阶乘求和计算</h1>
5353 const  workerjs  =  ` 
5454 // 监听来自主线程的消息 
5555 self.onmessage = function (event) { 
56-  console.log("\n\nWorker :收到计算任务 ->", event.data.loopNumber, typeof event.data.loopNumber); 
56+  console.log("Worker :收到计算任务 ->", event.data.loopNumber, typeof event.data.loopNumber); 
5757
5858 if (typeof event.data.loopNumber !== "number") { 
5959 self.postMessage("对不起:loopNumber参数必须是数字!"); 
@@ -75,35 +75,21 @@ <h1>Web Worker应用场景-阶乘求和计算</h1>
7575 self.close(); 
7676 console.log("Worker:关闭自己!"); 
7777 }; 
78-  ` ; 
78+  ` ; 
79+  
7980
8081 // main.js (主线程代码) 
8182 let  worker  =  null ; 
8283 const  $result  =  document . querySelector ( "#result" ) ; 
8384 const  $takeTime  =  document . querySelector ( "#takeTime" ) ; 
8485 document . getElementById ( "btn" ) . addEventListener ( "click" ,  function  ( )  { 
8586 let  start_time  =  "" ; 
86-  const  simpleWorker  =  ` 
87-  self.onmessage = function(e) { 
88-  self.postMessage("Hello from worker!"); 
89-  }; 
90-  ` ; 
9187
92-  try  { 
93-  const  worker  =  new  Worker ( new  Blob ( [ simpleWorker ] ,  {  type : "application/javascript"  } ) ) ; 
94-  worker . onmessage  =  function ( e )  { 
95-  console . log ( e . data ) ;  // 应该输出 "Hello from worker!" 
96-  worker . terminate ( ) ; 
97-  } ; 
98-  worker . postMessage ( "" ) ; 
99-  }  catch ( e )  { 
100-  console . error ( "Simple worker test failed:" ,  e ) ; 
101-  } 
10288 // 创建一个新的 Worker 
10389 // worker = new Worker("worker.js"); 
104-  // const  worker = new Worker(new URL('./worker.js', import.meta.url)); 
105-  worker  =  new  Worker ( new  Blob ( [ workerjs ] ,  {   type : "application/javascript"   } ) ) ;  // 使用 Blob 对象 来创建 Worker线程,这样就不用去加载外部的worker.js文件,就可以避免 CORS 问题了!! 
106- 
90+  // worker = new Worker(new URL('./worker.js', import.meta.url)); // 在Vue.js中加载worker.js文件  
91+  //  worker = new Worker(new Blob([workerjs], {type: "application/javascript"})); // 使用 Blob 对象 来创建 Worker线程,这样就不用去加载外部的worker.js文件,就可以避免 CORS 问题了!!
92+   worker   =   new   Worker ( URL . createObjectURL ( new   Blob ( [ workerjs ] ,   { type :  "application/javascript" } ) ) ) ;   // 注意:由于Content Security Policy (CSP)限制导致的。现代浏览器出于安全考虑,可能会阻止通过Blob URL创建Web Worker。 
10793 // 监听来自 Worker 的消息 
10894 worker . onmessage  =  function  ( event )  { 
10995 // event.data 是 Worker 返回的结果 
0 commit comments