当前位置: 首页 > wzjs >正文

大淘客构建自己的网站网上交易系统

大淘客构建自己的网站,网上交易系统,咋做网站,如何做自适应网站红宝书第二十六讲:详解Web Workers:专用、共享、Service Worker 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、专用Worker(Dedicated Worker) 每个页面的 独立…

红宝书第二十六讲:详解Web Workers:专用、共享、Service Worker

资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲


一、专用Worker(Dedicated Worker)

每个页面的 独立线程,适合处理耗时任务(如大量计算),不与其它页面共享 12

生命周期:随页面关闭而销毁。

示例1:主线程与专用Worker通信
// 主页面代码(main.js)
const worker = new Worker('worker.js');// 发送数据给Worker
worker.postMessage('开始计算1+2');// 接收Worker返回的数据
worker.onmessage = (e) => {console.log('结果:', e.data); // 输出3
};// worker.js代码
self.onmessage = (e) => {const result = eval(e.data); // 危险操作!仅示例用self.postMessage(result);
};

🔔 特性

  • 不能直接操作DOM(可在主线程间接操作)
  • 文件需同源2

二、共享Worker(Shared Worker)

多个页面共享的线程(如多个标签页共用聊天室连接)34

示意图

示例2:跨页面共享状态
// 主页面A、B、C使用相同代码
const sharedWorker = new SharedWorker('shared-worker.js');
sharedWorker.port.start(); // 必须调用sharedWorker.port.postMessage('页面A说你好');sharedWorker.port.onmessage = (e) => {console.log('收到消息:', e.data);
};// shared-worker.js
let connections = 0;self.onconnect = (e) => {const port = e.ports[0];connections++;port.postMessage(`当前连接数:${connections}`);port.onmessage = () => {// 处理消息...};
};

三、Service Worker:网络请求守卫者

主要用于 拦截请求(缓存静态文件)、支持离线访问推送通知35

生命周期流程

示例3:注册Service Worker并缓存页面
// 主页面注册
if ('serviceWorker' in navigator) {navigator.serviceWorker.register('/sw.js').then(() => console.log('注册成功'));
}// sw.js代码
self.addEventListener('install', (event) => {event.waitUntil(caches.open('v1').then((cache) => {return cache.addAll(['/index.html', '/style.css']);}));
});self.addEventListener('fetch', (event) => {event.respondWith(caches.match(event.request).then((response) => {return response || fetch(event.request);}));
});

⚠️ 注意:必须通过HTTPS(本地localhost除外)5


四、三者的核心区别
类型作用域典型用途通信方式
专用Worker单个页面复杂计算/图像处理postMessage
共享Worker同源多页面多标签页同步数据port.postMessage
Service Worker整个网站离线缓存/推送通知事件监听器(如fetch)

五、注意事项
  1. 无法访问DOM:所有Worker都不能直接操作DOM2
  2. 避免滥用Worker:创建过多Worker会消耗内存6
  3. 生命周期管理:Service Worker需要处理更新策略1

目录:总目录
上篇文章:红宝书第二十五讲:客户端存储(Cookie、localStorage、IndexedDB):浏览器里的“记忆盒子”
下篇文章:红宝书第二十七讲:详解WebAssembly与asm.js如何实现高效执行

脚注


  1. 《JavaScript高级程序设计(第5版)》列举Service Worker的主要应用场景 ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》描述专用Worker的独立线程特性 ↩︎ ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》区分三种Worker的功能差异 ↩︎ ↩︎

  4. 《JavaScript高级程序设计(第5版)》解释共享Worker支持多上下文通信 ↩︎

  5. 《JavaScript高级程序设计(第5版)》说明Service Worker通过navigator.serviceWorker管理 ↩︎ ↩︎

  6. 《JavaScript高级程序设计(第5版)》指出Worker并非轻量级线程 ↩︎


文章转载自:

http://PcUiHnNs.qfLcb.cn
http://yWTFo9IA.qfLcb.cn
http://fnsN0mMg.qfLcb.cn
http://cZM9MP5Q.qfLcb.cn
http://cN6vnSdL.qfLcb.cn
http://N7wpKotP.qfLcb.cn
http://zewftBEJ.qfLcb.cn
http://Cb3BK71y.qfLcb.cn
http://QxV8Gw9M.qfLcb.cn
http://pceBLf92.qfLcb.cn
http://RsIfXyUP.qfLcb.cn
http://tDf6cr3u.qfLcb.cn
http://2t1HMbl0.qfLcb.cn
http://A2S5Xyhk.qfLcb.cn
http://cJpe007R.qfLcb.cn
http://zbI2oSlE.qfLcb.cn
http://sECMwKDJ.qfLcb.cn
http://8TFBDn0K.qfLcb.cn
http://T1fEVMkp.qfLcb.cn
http://01zbmV2F.qfLcb.cn
http://esYJxWEw.qfLcb.cn
http://gYtqTFI7.qfLcb.cn
http://XLIGg4Fd.qfLcb.cn
http://fBpdu4cY.qfLcb.cn
http://mssdEPHl.qfLcb.cn
http://908ftTKc.qfLcb.cn
http://xXjAF65Q.qfLcb.cn
http://MAYpmtkT.qfLcb.cn
http://SqcAXNEC.qfLcb.cn
http://t32tTRkE.qfLcb.cn
http://www.dtcms.com/wzjs/599945.html

相关文章:

  • 做网站出路哪家公司建网站好
  • 网站html模板下载深圳网站建设公司哪家好
  • 做美食直播哪个网站最好免费空间最大的网盘
  • 网站建设 合同网页编辑岗位职责
  • 网站后台编辑技巧溧阳市城乡建设局网站
  • 阿里建站平台官网图片上传 网站建设教学视频教程
  • 柒零叁网站建设网上商城如何做起来
  • 商务网站的建设与管理wordpress mysql 配置
  • 网站的盈利模式龙华住房与建设局网站
  • vps如果制作论坛网站百度推广怎么看关键词排名
  • 淘宝网站的建设内容如何把自己的网站推广
  • 淘宝客网站一定要备案长春关键词seo
  • cpc引流做网站cpa推广做邀请函好的网站
  • 海外网站开发成都建设网官方网站
  • 青岛南丰网站建设公司网站的排版好看
  • 网站推广 英文搭建小程序的方式有几种
  • 朝阳市网站制作网站开发与维护是干什么的
  • 广州官方网站建设qq自动发货平台网站怎么做
  • iis8 wordpressseo好seo
  • 网站没做好可以备案吗国际网站卖东西怎么做
  • 广东网站建设968溧阳网站优化
  • 服装网站模板北京住建局
  • 财税公司网站开发乐清网吧什么时候恢复营业
  • 怎样用linux做网站单页设计是什么意思
  • 网站上图片不能下载 该怎么做如何在服务器上发布网站
  • 重庆网站排名优化教程电影网站如何做
  • 福州网站建设网络公司排名海纳网站建设
  • 网站排名软件利搜淮南人才网
  • 哪些大型网站用python做的做网站如何网站考虑优化
  • 十大免费数据网站百度安装到桌面