Skip to content

Commit 39da678

Browse files
committed
update
1 parent 38fc974 commit 39da678

File tree

3 files changed

+11
-27
lines changed

3 files changed

+11
-27
lines changed

Web-API/Worker-JS多线程运行环境/Web Worker/Web Worker应用场景-阶乘求和计算.html

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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 返回的结果

Web-API/Worker-JS多线程运行环境/Web Worker/使用Blob加载workerJs文件.html

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
<h1>使用Blob加载workerJs文件</h1>
1212
<hr />
1313
<h3>
14-
注意:由于Content Security Policy
15-
(CSP)限制导致的。现代浏览器出于安全考虑,可能会阻止通过Blob URL创建Web
16-
Worker。
14+
注意:由于Content Security Policy (CSP)限制导致的。现代浏览器出于安全考虑,可能会阻止通过Blob URL创建Web Worker。
1715
</h3>
1816
<script>
1917
const simpleWorker = `
@@ -23,15 +21,15 @@ <h3>
2321
};
2422
`;
2523
console.log("workerJs字符串代码:", simpleWorker);
26-
24+
2725
try {
2826
// 开始创建Worker
2927
const blob = new Blob([simpleWorker], {
3028
type: "application/javascript",
3129
});
3230
const workerUrl = URL.createObjectURL(blob);
3331
const worker = new Worker(workerUrl);
34-
32+
3533
// Worker创建成功,监听Worker返回消息
3634
worker.onmessage = function (e) {
3735
console.log("收到线程simpleWorker返回的信息:", e.data);

Web-API/Worker-JS多线程运行环境/Worker-JS多线程运行环境.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ registerPaint(
303303

304304
Worklet 将 Web 的可编程性带入了一个新的维度,它让我们有能力去干预和定制浏览器最底层的渲染行为,这是过去无法想象的。
305305

306-
## 总结
306+
## 4、总结
307307

308308
回顾一下今天我们认识的这些“工人们”:
309309

@@ -321,7 +321,7 @@ Worklet 将 Web 的可编程性带入了一个新的维度,它让我们有能
321321

322322

323323

324-
## 推荐链接
324+
## 5、推荐链接
325325

326326
- [Web Worker 使用教程 - 阮一峰](https://link.juejin.cn?target=https%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2018%2F07%2Fweb-worker.html)
327327
- [WebWorker 与 ServiceWorker - free-coder](https://link.juejin.cn?target=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1j44y1w7v1)

0 commit comments

Comments
 (0)