响应式网页应用-PWA-程序员宅基地

技术标签: ux  ui  

一、响应式网页应用-PWA介绍

响应式网页应用-PWA是Progressive Web App的英文缩写,渐进式增强WEB应用。一个为响应式设计的“保护伞”式的术语,是 Google 在2015年提出的概念,2017年落地的web技术。目的就是在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验。独立连接性、新颖、安全、可探索、可重定制、可安装性、可链接的应用web站点,并带有原生应用般的交互性能。

二、PWA 的优势

1、消息推送。用户只要允许,即使网页关闭后仍然可以在系统通知栏收到推送消息。

2、后台加载。往常的网页应用只要关闭了网页他的生命就结束了,现在引入了一个 Service Worker 的概念,即使网页关闭,PWA 仍然可以在后台运行获取数据更新(当然有限制)。离线使用。PWA 打开后会缓存一些内容,之后再次访问即使没有网络也可以浏览之前的页面(如同IE时代的离线浏览)。

3、原生应用界面。在某些情况下 PWA 应用可以隐藏浏览器本身的所有视觉成分,光从UI和UX上看,很容易认为这就是一个原生界面,如下图其实都是PWA而不是原生应用。

4、桌面图标。PWA只要配上一个图标,再放快捷方式在桌面上,就真的和原生系统无异了,打开的速度也很快。另一方面,和原生应用比,PWA 又不需要用户安装,只需要浏览器支持 PWA 就可以了。

三、PWA中包含的核心功能及特性如下:

  1. Web App Manifest
  2. Service Worker
  3. Cache API 缓存
  4. Push&Notification 推送与通知
  5. Background Sync 后台同步
  6. 响应式设计

四、Service Worker 介绍

Service Worker是一段运行在浏览器后台进程里的脚本,他独立于当前页面,提供了那些不需要与web页面交互的功能在网页背后悄悄执行的能力。在将来,基于它可以实现消息推送,静静更新以及地理围栏等服务,但是目前它首先要具备的功能是拦截和处理网络请求的功能,包括可编程的消息缓存管理能力,是PWA的核心。

五、Service Worker 工作原理

Service worker 是一个完全独立于 Web 页面的 js 脚本,有他自己的生命周期。每个 service worker 会对应一个缓存池,每个缓存池有多个缓存仓库。

首先讲讲它的声明周期:

若网站对应的 cacheName 没有 install,则首先触发 install事件。
若install失败,则退出等待下次访问再启动;否则触发activate事件。
在activate中,判断当前页面是否在上文声明的 filesToCache 列表中,如果是则接管网页的显示。接管网页以后,如果当前内存不足,会被杀死;否则等待处理fetch和message事件。这两个事件一个是当网络请求时,或者其他网页发出了消息时。

转载于:https://my.oschina.net/alan01/blog/3078491

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chunwudu8469/article/details/100821499

智能推荐

sql注入三种工具(主要sqlmap)_sql注入的工具-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏23次。文章目录SQLmap安装常见参数设置目标url:设置回显等级:-v设定探测等级:--level=N(sqlmap -r情况下)设定探测风险等级:--risk设置http相关参数指定测试参数列数据使用shell命令注入流程椰树注入流程椰树SQLmap安装将sqlmap文件夹复制到python环境的文件夹下,进入该路径下的sqlmap下,shift+鼠标右键,选择在此处打开命令窗口,进入cmd窗口后,输入sqlmap.py测试是否成功用kali虚拟机,默认安装sqlmap的,所以直接在shell_sql注入的工具

SuperMap GIS 三维方向矢量数据处理详解_supermap3d-程序员宅基地

SuperMap GIS是一种三维方向矢量数据处理工具,可以用于处理矢量数据的来源和结构,以及生成缓存等操作。在处理矢量数据时,需要注意勾选点外挂模型和面拉伸白膜生成缓存时的线框模式设置。

php 地区无限极分类处理方式_php 处理省市区的无限级分类-程序员宅基地

文章浏览阅读615次。php 地区无限极分类处理方式_php 处理省市区的无限级分类

OS- -内存之虚拟内存_计算题:假设页的大小为4kb,地址引用1 8085(以十进制数形式提供)的页码和偏移-程序员宅基地

文章浏览阅读631次。OS- -内存之虚拟内存文章目录OS- -内存之虚拟内存一、虚拟内存1.分页存在映射的页如何映射未映射的页如何映射2.页表页表项的结构3.加速分页过程转换检测缓冲区软件TLB管理3.针对大内存的页表多级页表倒排页表一、虚拟内存 尽管基址寄存器和变址寄存器用来创建地址空间的抽象,但是这有一个其他的问题需要解决:管理软件 的不断增大(managing bloatware)虽然内存的大小增长迅速,但是软件的大小增长的要比内存还要 快。在1980年的时候,许多大学用一台4MB的VAX计算机运行分时_计算题:假设页的大小为4kb,地址引用1 8085(以十进制数形式提供)的页码和偏移

latex全文设置段间距_LaTeX入门(4)-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏8次。主要内容:三线表样式排版更改字体字号更改字体样式行距缩进字间距页边距这篇文章首先给上一篇文章做一个结尾,然后我们就要讲到LaTeX中的样式了。一般来说,我们是不关注样式如何如何,LaTeX的自动排版已经给了我们很大的帮助,比如目录、参考文献、交叉引用等等,所以样式等的问题我们只需要过一遍就好,有一个大致的了解,以后有需要自己上网查就好了~对了,页眉页脚的设置在LaTeX入门(2)。三线表在科技论文..._latex 段间距

iOS Quartz2D 的从零到一学习使用_ios 使用quart2d-程序员宅基地

文章浏览阅读2.6k次。什么是Quartz2D?二维的绘图引擎什么是二维?平面什么是引擎?经包装的函数库,方便开发者使用。也就是说苹果帮我们封装了一套绘图的函数库同时支持iOS和Mac系统什么意思?用Quartz2D写的同一份代码,既可以运行在iphone上又可以运行在mac上,可以跨平台开发。开发中比较常用的是截屏/裁剪/自定义UI控件。Quartz2D在iOS开发中的价值就是自定义UI控件。_ios 使用quart2d

随便推点

org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionSta-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏13次。org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope异常处理1.业务场景 在一段数据库操作中添加了事务注解@Transactional(rollbackFor = Exception.class),但是代码中有try..._org.springframework.transaction.notransactionexception: no transaction aspec

Android开源控件收集整理_android 开源控件-程序员宅基地

文章浏览阅读2.4k次,点赞4次,收藏34次。一 、基本控件TextView HTextView 一款支持TextView文字动画效果的Android组件库。GitHub - hanks-zyh/HTextView: Animation effects to text, not really textview ScrollNumber 滚动数字控件https://github.com/a-voyager/ScrollNumber ticker 滚动数字控件 GitHub - robinhood/ti..._android 开源控件

SSL异常,高低版本MySQL连接异常_mysql 高版本连接低版本报ssl error-程序员宅基地

文章浏览阅读1.1k次。异常:Wed Sep 21 23:57:24 CST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connect_mysql 高版本连接低版本报ssl error

OMEN惠普HP暗夜精灵5:win10下安装Ubuntu16.04双系统(win10+linux)_hp win ubuntukylin 双系统-程序员宅基地

文章浏览阅读3.1k次,点赞7次,收藏16次。笔记本电脑为:OMEN5 15.6英寸 i5-9300H 24G 512SSD+1T GTX1660Ti(自己加装了内存条和机械硬盘)一、准备工作1.下载并安装软碟通:百度搜索免费下载UltraISO软碟通官方中文版2.安装,使用软碟通3.ubuntu官网下载ios镜像文件,我们选择的是桌面镜像版:网址:http://releases.ubuntu.com/16.04/选择64位桌面版进行下载4.先分区,选择至少80G的空间从一个较大的卷中:“压缩卷”,不要设置卷5.打开_hp win ubuntukylin 双系统

基于SSM的珠宝店信息管理系统--87229(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案-程序员宅基地

文章浏览阅读948次,点赞25次,收藏19次。本系统在详细的需求分析的基础上,系统设计使用SSM框架,采用基于MVVM模式进行开发,使用Eclipse为编写工具,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介等完成系统的开发,完成了系统的主要模块的页面设计和功能实现。

WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connec-程序员宅基地

文章浏览阅读3.8k次,点赞13次,收藏5次。WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:852)'),)'解决方法:关掉代理软件……_warning: retrying (retry(total=0, connect=none, read=none, redirect=none, st

推荐文章

热门文章

相关标签