if ('serviceWorker' in navigator) { navigator.serviceWorker.register( 'service-worker.js...document.getElementById('status').innerHTML = 'unavailable'; } 创建一个service-worker.js...index.js 'use strict'; if ('serviceWorker' in navigator) { navigator.serviceWorker.register( 'service-worker.js...innerHTML = error; }); } else { document.getElementById('status').innerHTML = 'unavailable'; } 创建service-worker.js...一定要访问index.html啊,不然不会成功 多个fetch事件调用 fetch事件和js其他事件一样都是可以注册多次的。 创建index.html <!
pwa-之service worker 基本概念 pwa-之service worker 离线文件处理 学习service worker 基本概念 在本章,将涵盖以下内容 service worker准备工作...注册service worker 注册service worker细节 调试 出现错误时提供稳定版本 创建mock响应 处理请求超时 简介 如果你是一个旅行爱好者,应该会经常陷入没有网络的情况。...注册service worker 一个service worker如果要生效,必须要先注册。这个注册的过程是发生在service worker之外的。一般会在index.html中。...其他 当一个service worker被成功注册,它会经历以下状态 Install 在service worker的生命周期中,如果service worker已经注册没有错误,但是尚未激活。...那之前已经激活的service worker就会仍然会控制着页面。重新加载之后的service worker如果发生任何更改,就会重新安装service worker。
在讨论Service Worker与PWA之前,让我们先简要了解一下Web Worker。 Web Worker 1. 什么是 Web Worker?...复杂任务的出现可能导致主线程被阻塞,严重影响用户体验。Web Worker 的作用是允许主线程创建 worker 线程,使它们可以同时运行。...支持后台同步 Service Worker 允许在后台执行任务,例如数据同步或推送通知。这使得应用程序可以在不干扰用户的情况下执行一些重要的操作。 4....支持推送通知 Service Worker 具有推送通知功能,可以通过浏览器向用户发送实时通知,提高用户参与度和留存率。...;通知功能则可以通过 Service Worker 来向用户展示一些新信息,或者至少提醒用户应用已经更新了某些功能。
什么是Service Worker Service workers essentially act as proxy servers that sit between web applications,...They will also allow access to push notifications and background sync APIs. — from MDN 翻译过来就是:Service...他们还允许访问推送通知和后台同步API。 service worker运行在非主线程的其他线程上,所以不会阻塞主线。,有自己独立的上下文,不能访问DOM。只能使用异步api。...并且为了安全,service worker只能运行在https之上。部分浏览器的隐私模式也无法使用。 由于service workers是由chrome提出推广的技术,所以chrome支持最好。...虽然它是被定义在 ServiceWorker 的规范中,但可以在其他worker和window中使用。 在caches上调用 open 方法就可以异步地得到一个Cache对象的引用。
Browser Service Worker Cache Capacity Cache最多是多少?我的应用最少需要多少?...appCache和service worker能够持久化地缓存URL可寻址资源的文件,这在技术上是正确的。 但是service worker cache不是唯一一个需要注意的浏览器存储介质。...iOS Safari Service Worker缓存的限制 天哪!苹果公司为什么要将事情搞得这么复杂?...苹果公司实现PWA持久性的方式很奇怪。如果在几周内未使用的PWA(我们认为它是2周),iOS设备会清除存储的资源。...这是个好消息,如果需要,你至少有一个备选的存储方案,通过IDB来使Service Worker保存更多的数据。
PWA的出现 显著提高应用加载速度 Web应用可以在离线环境下使用 Web应用能够像原生应用一样被添加到主屏 web应用能在未被激活时发起推送通知 web应用与操作系统集成能力进一步提高...PWA的优势 根据提示或手动添加到主屏幕 全屏幕打开,不受困于浏览器的UI 无法访问网络时,可以像原生应用一样照常执行 像原生一样发起推送通知 PWA模型将继约20年前横空出世的...Service Worker的生命周期 image.png Service Worker的安装 self.oninstall = e => { e.waitUntil( caches.open...Worker的缓存策略 image.png Service Worker总结 Service Worker是支撑PWA的最核心的技术,将带来离线优先的架构革命 Push Notification...API向用户发出通知 总结 PWA的技术未来可期,作为前端,我们很有必要掌握这门技术,在未来的几年里,必然成为你的核心竞争力,老铁们,赶紧学起来
PWA 出现之后,添加到桌面的图标我们可以自定义,还可以自定义首次进入 app 的画面,而且它不再使用浏览器打开,而是像原生应用一样打开,没有 url 地址输入框。...这些技术一般包括: manifest 一个 json 配置文件,用于定义 PWA 应用程序清单; service-worker 让 PWA 离线工作,可以说是 PWA 的核心技术; promise 和...有了 manifest 文件我们还不能构成一个 PWA 应用,还需要 service worker 控制缓存。...使用 service worker 使用 service worker 有固定的书写步骤: 注册。使用 ServiceWorker.register() 方法首次注册 service worker。...console.log('fetch: ',event); }); 当是第一次访问站点时,会先注册,然后触发 install 事件,接着是 activate 事件;当再次刷新时,会触发 fetch 事件(可能会触发多次
处理推送通知,类似于本机应用程序。这意味着网站可以获得用户的许可来发送通知,然后依靠Service Workers接收消息并执行消息,即使浏览器关闭。...Notification通知的功能与消息push类似,但更为简单,只要设置好通知消息,调用service worker的相同通知接口即可,甚至可以可以带操作, 后台同步也是Service Worker的一个子功能...对于一些开发商而言,PWA技术的出现意味着需要考虑在Web端进行应用开发,并为用户提供更好的Web应用体验。...PWA技术的出现可能会对应用商店造成一定的冲击,因为PWA可以通过浏览器直接访问,不需要下载和安装,这可能会导致一些应用商店用户流失。...对于用户而言,PWA技术的出现可能会提供更好的Web应用体验,例如离线访问、桌面快捷方式、推送通知等功能,同时也可以减少一些应用的下载和安装成本。
PWA:使用标准的Web开发技术,可以支持离线可用,通过service worker进行更新和缓存,采用App shell模型基础开发,界面和交互类似应用。...id=cheeaun.hackerweb" }]} Service Worker Service Worker 是一段脚本,与 Web Worker 一样,也是在后台运行。...Native App 可以做到离线使用、消息推送、后台自动更新,Service Worker 的出现是正是为了使得 Web App 也可以具有类似的能力。...页面注入service worker代码示例: if (navigator.serviceWorker) { navigator.serviceWorker.register('service-worker.js...随着各大浏览器对PWA技术的支持,未来会出现越来越多的PWA的应用。
它即使在不可靠网络上也能快速加载、能够发送相关推送通知、具有桌面图标,并且可采用顶层全屏体验的方式加载。...PWA:使用标准的Web开发技术,可以支持离线可用,通过service worker进行更新和缓存,采用App shell模型基础开发,界面和交互类似应用。...一个PWA的manifest.json示例: Service Worker Service Worker 是一段脚本,与 Web Worker 一样,也是在后台运行。...Native App 可以做到离线使用、消息推送、后台自动更新,Service Worker 的出现是正是为了使得 Web App 也可以具有类似的能力。...随着各大浏览器对PWA技术的支持,未来会出现越来越多的PWA的应用。
PWA入门、离线功能实现、推送通知技巧、提高用户留存。 引言 随着web技术的发展,PWA为网站提供了近乎原生应用的体验。...其中,离线功能和推送通知成为PWA的核心特性,大大提高了用户的互动性和留存率。本文将为您揭示这两大功能的实现细节。 正文 1....代码示例: // 注册Service Worker if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js...').then(function() { console.log('Service Worker 注册成功'); }); } // sw.js self.addEventListener(...参考资料 PWA入门指南 | Google Developers Service Worker API | MDN Web Docs 推送通知的实现 | Web Push Book PWA vs Native
像本地应用一样交互:采用“壳+内容”模式来实现类似本地应用的浏览和交互体验 保持最新:始终透明的升级到最新版,这要感谢Service Worker提供的升级机制 安全:通过TLS(这是Service...Worker所要求的)来防止通讯被窥探 可发现的:具有像“应用”一样的唯一标识,这要感谢W3C的Manifest文件格式,它在“Service Worker”中注册的scope能允许搜索引擎发现这些应用...2 PWA怎么用? 一个PWA的使用过程大概是这样的: 这货开始就是一个普通网页: 然后,这是什么鬼? 这网站看着还不错,那就接受吧! 它出现在手机的首屏了,以后随叫随到!...离线存储技术 可能有人还记得一项叫AppCache的技术,它已经废弃了,现在被Service Worker所取代。...这是新的H5标准的一部分,而不是PWA特有的。 推送通知 H5标准中已经有了用来推送通知的API(用过Web Gmail的话应该见过),现在只要把它和操作系统的API对接就行了。
PWA的关键技术是Service Worker,目前桌面和移动设备上的所有主流浏览器都已支持。目前除了Safari,其他主流浏览器都已支持添加主屏幕、推送通知消息。...在这里我们简单为大家介绍一下Service Worker。 Service Worker充当代理服务器的位置,位于 Web 应用程序、浏览器和网络(如果可用)之间。...这个API旨在创造更好的离线体验,拦截网络请求并根据网络是否可用采取适当的行动,并更新驻留在服务器上的内容,它还允许访问推送通知和并和后台API同步。 PWA 的使用场景和未来在何处?...而这一切都可以在我们的Web应用中出现,不再需要本地应用。 介绍了PWA的相关知识点,下面我们就一起来通过实例看看PWA如何让一个站点变成APP吧。.../manifest.json"> 实现Service Worker 新建sw.js, 通过Service Worker缓存设计器所需要的spreadjs资源 var cacheName = 'v14.2.2
获取消息通知,等等。。PWA的出现让大家看到了希望! 对比原生应用 那PWA和原生应用相比到底有何竞争力呢?...service worker通俗来讲就是在浏览器后台独立于网页运行的一段脚本,service worker可以完成一些特殊的功能,比如:消息推送、后台同步、拦截和处理网络请求、管理网络缓存等。...Service worker之于pwa的意义在于能够为用户提供离线体验,即掉线状态下用户依旧能够访问网站并获取已被缓存的数据。使用service worker需要HTTPS,并且考虑 浏览器兼容性。...worker还不够,我们还希望控制service worker的行为,通过在 vue.config.js 中增加相关的配置我们可以设置service worker文件的名称、缓存逻辑等等。...由于@vue/cli-plugin-pwa生成的service worker只在生产环境生效,所以建议将项目build之后部署到生产环境测试。本文示例使用 github pages进行部署和展示。
,可以点击按钮安装PWA,不用安装APP即可获取本站服务,若是手机用户可以在出现的将此页面发送至桌面来进行订阅。...功能 离线和缓存 Service Worker 这项技术主要是解决JS单线程问题,为了减少对浏览器网页开启峰值,页面加载问题。...什么是 Service Worker Service Worker 有以下功能和特性: 一个独立的 worker 线程,独立于当前网页进程,有自己独立的 worker context。...消息通知 使用 service worker 的功能之一:通知 (notification),它允许服务器向用户提示一些信息,并根据用户不同的行为进行一些简单的处理。...参考文章 什么是PWA | PWA 文档| Lavas 简单介绍一下Progressive Web App(PWA) 渐进式Web 应用(PWA) | MDN 讲讲PWA – 前端学习- SegmentFault
随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能 解决了哪些问题?...如果在此步骤中出现任何错误,register() 返回的 promise 都会执行 reject 操作,并且 Service Worker 会被废弃。...HTTP 缓存 Web 服务器可以使用 Expires 首部来通知 Web 客户端,它可以使用资源的当前副本,直到指定的 “过期时间”。...步骤一和步骤二index.html 步骤三 服务器发送消息给 service worker app.js service worker 监听 push 事件,将通知详情推送给用户 service-worker.js...扩展知识:service worker 的更新 总结 PWA 的优势 可以将 app 的快捷方式放置到桌面上,全屏运行,与原生 app 无异 能够在各种网络环境下使用,包括网络差和断网条件下,不会显示
随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能.pwa 可以添加在用户的主屏幕上,不用从应用商店进行下载,他们通过网络应用程序 Manifest...Worker 在网页已经关闭的情况下还可以运行, 用来实现页面的缓存和离线, 后台通知等等功能。...版已经支持Web App Manifest 和 Service Worker) Microsoft:Edge和Windows 10全面支持PWA 微软,宣布全面支持PWA ?...应用具备了轻量化、离线使用、本地通知等优势特点,应用本身只需占用很小的存储空间,依然保留了原生 Apps 大部分功能,甚至还优化了硬件性能消耗、应用频繁出现广告内容的问题。...如果你希望在安装原生应用之前,提前体验功能和内容,轻量化的 PWA 应用会是一个非常不错的选择。 参考资料 浏览器兼容 manifest.json参数详解 Service Worker API
PWA 的构建块 1.响应式:由于 PWA 提供跨设备兼容性,因此它必须在所有设备上响应。 2.Service worker:这是一个脚本文件,可以在不影响页面性能的情况下在后台异步运行任务。...让我们再深入一点…… Service worker Service Worker 负责确保 PWA 可靠且独立于网络状态。...我们还可以让 service worker 监听网络变化期间发生的事件,并可以动态地服务、修改或拦截应用程序内的网络请求。...简而言之,PWA 的两个主要功能(例如一次性安装和缓存)是使用 Service Worker 脚本完成的。它还可以用于在用户不使用网站时处理推送通知。...HTTPS 由于以下原因,PWA 必须使用 HTTPS 协议提供服务: 1.Service Worker 需要 HTTPS 连接。
PWA赋予了我们创建同时拥有以上两种优势的应用的能力。 这并不是一个新概念——这样的想法在过去已经在web平台上通过许多方法出现了多次。渐进式增强和响应式设计已经可以让我们构建对移动端友好的网站。...支持PWA的Blazor程序主要是多了几个东西: manifest.json service-worker.js manifest.json manifest.json是个清单文件,当程序被安装到设备上的时候会读取里面的信息...service-worker用来跑一些后台任务。.../service-worker-assets.js'); self.addEventListener('install', event => event.waitUntil(onInstall(event...修改service-worker 离线的原理也很简单,就是请求的数据都缓存起来,一般是缓存Get请求,比如各种页面图片等。
的一系列关键技术的出现,终于让我们看到了彻底解决这两个平台级别问题的曙光 PWA解决的问题 能够显著提高应用加载速度 甚至让 web 应用可以在离线环境使用 (Service Worker) web...接下来我们看看PWA的2个重要技术点,Web APP Manifest 和 Service Worker Web App Manifest 参考链接:https://developers.google.com...他们还允许访问推送通知和后台同步API。 service worker将遵守以下生命周期: 下载 安装 激活 ? ?...Worker 是支持的, 接着,我们使用 ServiceWorkerContainer.register() 函数来注册 service worker, 这就注册了一个 service worker...Service Worker 的 新的标志性的存储 API — cache — 一个 service worker 上的全局对象,它使我们可以存储网络响应发来的资源,并且根据它们的请求来生成key。
领取专属 10元无门槛券
手把手带您无忧上云