问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PWA详解及应用实践(一)--PWA相关介绍及其生命周期

发布网友 发布时间:2024-10-04 02:16

我来回答

1个回答

热心网友 时间:2024-10-08 18:16

PWA的产生原因及背景

技术与理念均源于对问题解决的追求,PWA也不例外。

PWA(Progressive web apps)即渐进式Web应用,它并非特指某项技术,而是一种理念。通过运用多种技术来增强Web app的功能,以提升网站体验。例如,模拟原生功能,如通知推送、请求拦截、桌面图标等。

“模拟原生”是PWA的核心关键词。其产生的主要原因之一,是为了弥补Web应用与Native App在用户体验方面的巨大差距。例如:渲染速度、动画流畅度;另一个重要原因是用户留存。Native App桌面图标入口比输入URL和搜索引擎更便利,用户也能记住URL并输入,但对于移动用户来说,成本巨大,导致Web站点与用户之间的粘性非常脆弱。Native App还能通过发送通知让用户回到应用中,而Web没有这个能力。这两方面因素极大提高了用户粘性。Google在一篇名为《Why Build Progressive Web Apps》的文章中披露过一组数据,Web站点每月的UV是Native App的3倍,然而用户在Native App花费的时间却是Web的20倍。

PWA设计目标和需要解决的问题

基于上述PWA产生的历史背景和原因,其想要解决的问题主要包括以下几方面:

PWA相关特性

特性是为了实现设计理念和目标所要具备的功能和特点。PWA的相关特性是针对解决上述问题设计的,主要包括以下几点:

下表列出了传统Web App、Native App和PWA在各特性的对比。PWA兼具用户体验和迭代速度两方面优势,但技术兼容性相对较差。

| |是否可安装|是否可链接访问|用户体验|用户黏性|迭代速度|兼容性| |---|---|---|---|---|---|---| |传统 Web|无法安装|可链接访问|体验一般|黏性差|快速|优| |Native App|可安装|不可链接访问|体验好|黏性强|需审核|优| |PWA|可安装|可链接访问|体验好|黏性强|快速|一般|

兼容性(Service Worker)

下面是CAN I USE

PWA的核心技术

PWA不是特指某一项技术,而是应用多项技术来改善用户体验的Web App,其核心技术包括Web App Manifest、Service Worker、Web Push等,用户体验才是PWA的核心。

Web App Manifest

Web App Manifest (Web 应用清单)是一个简单的JSON文件,它使开发人员能够控制本应用对用户的显示方式。开发者可以在这个JSON文件中配置PWA的相关信息,如应用名称、图标、启动方式、背景颜色、主题颜色等。可以添加桌面图标,作为应用入口,给用户一种沉浸式浏览体验。

一个简单的manifest.json文件,更多配置选项

Service Worker

Service worker是一个注册在指定源和路径下的事件驱动worker。它采用JavaScript控制关联的页面或网站,拦截并修改访问和资源请求,细粒度地缓存资源。你可以完全控制应用在特定情形下的表现。

Service Worker 相关注意事项:

Service Worker 生命周期

Service Worker可能拥有以下六种状态之一:

解析成功(parsed)

使用ServiceWorkerContainer.register()方法注册service worker。首次注册浏览器解析脚本并获得入口点。如果解析成功,就可以访问到注册对象(registration object),其中包含Service Worker的状态及其作用域。注意,注册成功并不意味着已经完成安装,也不能说明已经激活,仅仅是脚本被成功解析。

正在安装(Installing)

Service Worker脚本解析完成后,浏览器会试着安装,并进入“installing”状态。此时,install事件被触发。我们通常在install事件中缓存静态文件。

如果install事件中有event.waitUntil()方法,则installing事件会一直等到该方法中的Promise完成之后才会进入下一个状态(installed);如果Promise被拒,则安装失败,Service Worker直接进入废弃(redundant)状态。

安装成功/等待中(Installed/Waiting)

如果安装成功,Service Worker进入安装成功(installed)(也称为等待中[waiting])状态。在此状态中,它是一个有效的但尚未激活的worker。它尚未纳入document的控制,确切来说是在等待着从旧worker接手控制权。

此时可以调用skipWaiting()方法,激活进入waiting状态的Service Worker。

正在激活(Activating)

处于waiting状态的Service Worker,在以下之一的情况下进入activating状态:

进入activating状态,触发activate事件,我们通常在activate事件中,清理缓存文件

如果activate事件中有event.waitUntil()方法,则在其Promise完成之后,激活才会成功。如果Promise被拒,激活事件失败,Service Worker进入废弃(redundant)状态。

注意使用skipWaiting方法跳过waiting状态,直接激活Service Worker。可能会出现其他终端还没有受当前终端激活的Service Worker控制的情况,切回其他终端之后,Service Worker控制页面的效果可能不符合预期。为了保证Service Worker激活之后能够马上作用于所有的终端,通常在激活Service Worker后,通过在其中调用self.clients.claim()方法控制未受控制的客户端。

激活成功(Activated)

如果激活成功,Service Worker进入active状态。在此状态中,新的worker将获得document全面控制权。此状态下才能拦截网络请求以及和document页面通信。

废弃(Redundant)

Service Worker可能以下之一的原因进入废弃状态:

到此为止,有关PWA的功能背景和生命周期的相关介绍,已经简单地介绍完毕。下一篇文章,将具体与大家一起讨论PWA的应用以及最佳实践。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婚内出轨离婚后财产如何分配 婚内出轨方离婚财产的分配方式 陇西粉煤灰加气砌块生产线 多动能砌块砖机/水泥砌块机多少钱设备 手把手教你工程师应该掌握的20个模拟电路 做仓管Excel学到什么程度 我是新手仓管 请各位帮 做一份EXCEL仓库电子表格,有每日出入库 结存记 ... 我想做名仓管,但不知道都用什么excel 函数,希望各位大侠帮我下,呵呵... 七年级下学期数学一、二单元测试卷以及答案,越快越好!!谢谢_百度... 网易邮箱APP怎么绑定微信 账号关联方法介绍 最近手头有点闲钱想做个理财,朋友介绍豫商贷 安全吗 渐进式 Web 应用程序 (PWA):彻底改变移动设备的 Web 开发 Angular 应用支持 PWA(Progressive Web Application) 特性的开发步骤分 ... Service Worker 实践指南 Service Worker总结 ...不同的公司名称,固定资产由A转让到B要怎么做账务处理? lenovo a320t 怎样打开数据开关 网上平台靠不靠谱?跟其他平台比有什么不同? 泰康人寿的续期收展员主要做什么?有做过的吗? 泰康人寿续期收费属于什么编制,待遇如何 长沙哪里打篮球的人最多?!我篮球是中下水平的高中生,想找个师傅教教... ae86在哪里买得到 我是一个高中生篮球特长,我身高178体重130斤,我要买一双耐克的球鞋,不... 丰田86有没有停产 丰田86配件好找吗 我是高中生 近视,我想把篮球眼镜当近视眼镜带,就不带普通的眼镜了.就是... 熟鸡蛋在水里煮多久会熟鸡蛋怎么煮 孤芳不自赏何侠杀耀天公主是为什么 何侠结局死了吗 孤芳不自赏主要人物 35厘米电视多少寸 鸡蛋取什么名字好听 iPhone5S更新了ios8.3之后设置了联系人头像之后来电的头像是全屏显示的... 眼睛斜视手术后多久能好 银川斜视手术需要住院吗? Asus/华硕A88XM- A主板 和GTX650显卡配套吗 华硕a88xm-a可以用gt630显卡和860kcpu不? qq人工客服电话是什么 球面上的几何在极值图论中的一个应用——Bollobas-Erdos Graph的... 宏命令和鼠标指向宏是一样的吗 全键宏编程是指什么? 大家都把吉他调到标准音么 早晨跑步好还是晚上睡觉前跑步好? 长痘痘了不管它只喝些凉茶会自然好吗? 车内灰尘怎么快速清理 怎样快速把表格的行调高或调低 怎样去除车内缝隙中的灰尘 车内缝隙的灰尘怎么清理 我是个学生喜欢电脑就是想组装一台只是在家上网价格两千以内最好速度别... 均衡配置电脑的策略是什么? 电脑配置中,512M内存.80G硬盘的含意