3个答案
|网络工作者|服务工作者| |--------------|--------------|------------------| |实例|每个选项卡多个|所有选项卡一个| |寿命|与标签相同|独立| |预期用途|并行性|离线支持|
-
2 -
6 这并没有回答这个问题,即服务工作者能做什么,而网络工作者不能做什么。 这个答案只粘贴了他们打算做什么的摘要,以及实例等方面的差异。 没有任何标识表明服务人员可以做任何web工作人员不能做的事情。 例如,web工作人员也可以像服务工作人员那样拦截请求并从缓存加载资源吗? 网络工作者的寿命能比标签更长吗? 也就是说,所谓的寿命限制有多严格? 有什么方法可以强制改变寿命吗? – 快速学习 评论 2021年4月28日14:28 -
WebWorkers为Web内容提供了一种在后台线程中运行脚本的简单方法。 工作线程可以在没有 干扰用户界面。 此外,它们可以执行I/O 使用XMLHttpRequest(尽管responseXML和channel属性 始终为空)。 创建后,工作程序可以向 通过向事件发布消息创建它的JavaScript代码 由该代码指定的处理程序(反之亦然)
服务工作者本质上充当web之间的代理服务器 应用程序、浏览器和网络(如果可用)。 他们是 旨在(除其他外)使 离线体验、拦截网络请求和 基于网络是否可用的适当操作,以及 更新的资产位于服务器上。 它们还将允许访问 推送通知和后台同步API。
/*main.js(主要.js)*/ navigator.serviceWorker.register('/service-worker.js'); /*服务-工作.js*/ //安装 self.addEventListener('install',函数(event){ // ... }); //激活 self.addEventListener('activate',函数(event){ // ... }); //侦听来自主文档的网络请求 self.addEventListener('fetch',function(event){ // ... });
/*main.js(主要.js)*/ //创建辅助进程 const myWorker=新工人('Worker.js'); //向工作人员发送消息 myWorker.postMessage(“你好!”); //从工作人员接收消息 myWorker.onmessage=函数(e){ 控制台.log(e.data); }
-
5 图片来自bitsofco.de网站- bitsofco.de/web-workers-vs-service-workers-vs-worklets – 史蒂夫·格里菲斯 评论 2022年1月11日15:59