PWA是什么?

Progressive Web App 渐进式web应用程序,简单来说,就是可以让你的WEB App,带来与原生App相媲美的用户体验。。

为什么要用PWA?

简单来说,是为了web应用更好的用户体验。

  • 当你的web页面处于离线或者弱网情况,可以调用预先缓存资源,使你的应用正常加载。
  • 部分资源无需经过网络,页面秒开。
  • 你的页面可以被搜索引擎收录。
  • 可以通过message进行离线消息推送。
  • 应用可以被添加到手机桌面,像原生应用一样可以全屏,推送

怎么用PWA?

  • 使用HTTPS
  • 使用Service Worker技术(下文有详细介绍),实现离线加载技术
  • 把我们需要离线的文件放到App Mainfest文件代码中

PWA目前浏览器支持情况点击直达兼容性查询页

不同平台分别最适合体验 PWA 应用的浏览器:

Android:Chrome 浏览器

iOS:Safari 浏览器

Windows 10:Edge 浏览器 / Chrome 浏览器 / Stack 浏览器

macOS:Chrome 浏览器 / Stack 浏览器

Linux:Chrome 浏览器

关于pwa图文介绍以及使用体验的资料可参考

全平台的轻量体验:PWA 使用指南及应用推荐

ServiceWorkerGlobalScope API

WEB App Mainfest

Service Worker 是什么?

Service Worker 是浏览器独立于当前网页,在后台运行的一个脚本。作用有以下几点

  • 拦截和处理网络请求,刷新页面可以通过缓存,页面秒开
  • 使用Service Worker 在后台运行,实现处理大规模后台数据的功能,不影响前端页面,数据处理同时可以和前端页面进行通信
  • 仅在激活情况下,才会针对系统事件抓取资源,非激活情况下,不占用系统资源

Service Worker工具备注,使用下面两个指令,可以查询到我们已经启动的,和浏览器内置的Service Worker

  • chrome://serviceworker-internals/
  • chrome://inspect/#service-workers

使用service-worker缓存页面内容

首次加载





点击刷新以后

使用service-worker发送消息

使用第一个窗口发送消息

我们在第二和第三个窗口都看到了第一个窗口发送的消息







关于上图 service-worker缓存页面,以及不同页面发送message代码地址

https://gitee.com/tangdd369098655/service_worker.git

查看当前网站是用哪个文件注册的Service Worker

如何测试你的页面性能?Lighthouse 前端性能优化测试工具

  • 分析Web应用,收集各种应用指标,并进行评估,以此我们可以根据评估结果进行针对性优化,不断提升用户体验
  • 目前官方提供了4种使用方式: - Chrome 开发者工具(DevTools) - Chrome 扩展 - Node CLI - Node Module
  • 详细文档可以参考[https://github.com/GoogleChrome/lighthouse](Lighthouse github)

使用Chrome 开发者工具,接下来我们以手机淘宝为例,来看一下页面性能

打开开发者工具-点击 generate report,它会对页面进行相关性能的检查,最终生成报告

切换语言~~

各个方面得分情况

PWA分析报告

  • 经过分析,我们可以得到 该案例关于PWA分析 如下结果

PWA-H5 Web App优化探索之路(Service Worker,Lighthouse)的更多相关文章

  1. PWA(Progressive Web App)入门系列:(一)PWA简单介绍

    前言 PWA做为一门Google推出的WEB端的新技术,长处不言而喻.但眼下对于相关方面的知识不是非常丰富.这里我推出一下这方面的新手教程系列.提供PWA方面学习. 什么是PWA PWA全称Progr ...

  2. [PWA] Add web app to your Home Screen

    Clone: Link Modify the structure: Move css, js, image, index.html to an 'app' folder. manifest.json: ...

  3. PWA全称Progressive Web App,即渐进式WEB应用?

    一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能解决了哪些问题 ...

  4. Service Worker的应用

    Service Worker的应用 Service worker本质上充当Web应用程序.浏览器与网络(可用时)之间的代理服务器,这个API旨在创建有效的离线体验,它会拦截网络请求并根据网络是否可用来 ...

  5. PWA渐进式web应用

    PWA(Progressive Web App)是一种理念,使用多种技术来增强web app的功能,可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送.在移动端利用标准化框架,让网页应用呈现 ...

  6. JavaScript是如何工作的:Service Worker的生命周期及使用场景

    摘要: 理解Service Worker. 原文:JavaScript 是如何工作的:Service Worker 的生命周期及使用场景 作者:前端小智 Fundebug经授权转载,版权归原作者所有. ...

  7. Progressive web app理念及发展前景

    前一段时间微信推出微信小程序进行公测,着实火了一把,博得了大众的眼球,不明真相的吃瓜观众们纷纷围观,所谓的“微信小程序”,通俗的讲就是一种不需要下载安装即可使用的应用程序,脱离于app商店依托于浏览器 ...

  8. 转《service worker在移动端H5项目的应用》

    1. PWA和Service Worker的关系 PWA (Progressive Web Apps) 不是一项技术,也不是一个框架,我们可以把她理解为一种模式,一种通过应用一些技术将 Web App ...

  9. service worker在移动端H5项目的应用

    1. PWA和Service Worker的关系 PWA (Progressive Web Apps) 不是一项技术,也不是一个框架,我们可以把她理解为一种模式,一种通过应用一些技术将 Web App ...

随机推荐

  1. NLP之基于Seq2Seq的单词翻译

    Seq2Seq 目录 Seq2Seq 1.理论 1.1 基本概念 1.2 模型结构 1.2.1 Encoder 1.2.2 Decoder 1.3 特殊字符 2.实验 2.1 实验步骤 2.2 算法模 ...

  2. 6.-Django设计模式及模版层

    一.MVC (java等其他语言) MVC代表Model-view-Contorller(模型-视图-控制器)模式 M模型层主要用于对数据库层的封装 V视图层用于向用户展示结果 C控制器用于处理请求. ...

  3. Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务

    本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置 ...

  4. awk变量

    awk变量 awk参数 参数 解释 -F 指定分割字段符 -v 定义或修改一个awk内部的变量 -f 从脚本文件中读取awk命令 对于awk而言,变量分为 内置变量 自定义变量 内置变量 解释 FS ...

  5. 浅入浅出 1.7和1.8的 HashMap

    前言 HashMap 是我们最最最常用的东西了,它就是我们在大学中学习数据结构的时候,学到的哈希表这种数据结构.面试中,HashMap 的问题也是常客,现在卷到必须答出来了,是必须会的知识. 我在学习 ...

  6. webRTC demo

    准备: 信令服务 前端页面用于视频通话 demo github 地址. 前端页面 为了使 demo 尽量简单,功能页面如下,即包含登录.通过对方手机号拨打电话的功能.在实际生成过程中,未必使用的手机号 ...

  7. 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令

    目录 3 安装配置 3.1 安装GCC 3.2 安装libevent 3.3 安装libfastcommon 3.4 安装FastDFS 3.5 安装fastdfs-nginx-module 3.5 ...

  8. 【炫丽】从0开始做一个WPF+Blazor对话小程序

    大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 本文演示如何在WPF中使用Blazor开发漂亮的UI,为客户端开发注入新活力. 注 要使WPF支持Blazo ...

  9. 如何使用虚拟机下载和安装Centos

    首先先下载虚拟机进行安装我这里使用的是 VMware Workstation Player 当前版本为16.这个是免费使用的可以不需要许可证就能长期使用了 官网VMware Workstation P ...

  10. javaSE--核心之一:IO流

    Java IO流框架结构: IO的主要内容包括输入.输出两种IO流,这两种流中又分为字节流和字符流,字节流是以字节为单位来处理输入.输出流,而字符流是以字符为单位来处理输入.输出流. InputStr ...