1、PWA 是什么?

  PWA 是 Progressive Web App 的缩写,从字面翻译过来就是 渐进式 Web App。

  渐进式翻译过来就是慢慢的,不是一蹴而就的。这里的指的是 Wab App 更安全、性能更好,体验更完善。

  总结的说,PWA 就是应用了新的一些技术对 Web App 进行改进,使得它在安全、性能、体验三个方面有更好的提升,

  PWA 就是一个概念。用技术使 Web App 应用更好。

  特定:

  可靠 -- 在不稳定的网络环境中,也可以瞬间加载并展示

  体验 -- 加载速度快,可以先给展示页面

  粘性 -- 可以在桌面创建入口,并不需要去下载

      可以借助缓存,是体验更好

      可以给用户发送离线通知。

  新技术 :

  App Manifest -- 描述应用的相关信息,实现添加入口到桌面

  Service Worker -- 使得 javascript 可以开启一个独立的线程

  Notifications API -- 给用户提送信息展示在桌面

  Push APi  --  允许web应用接收服务推送的消息

  Background Sync --  后台同步,属于 service worker 的功能。网站关闭的时候,在后台执行。

2、Service Worker

  浏览器中 javascript 运行在一个线程上,同一时间只能做一件事情。

  Service Worker 可以脱离主线程,在一个独立的线程中工作。完成一些复杂的事情。

  特点:

  拥有一个独立的线程,可以和主线程交互

  一点被创建拥有存在,除非被终止

  需要的时候直接可以唤起,不需要的时候睡眠

  可以拦截代理请求和返回、缓存文件

  可以接收服务端推送的消息

  

  使用

 

  // 注册一个 serviceWorker
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js', {scope: '/'})
.then(function (registration) {
// 注册成功
console.log('ServiceWorker registration successful with scope: ', registration.scope);
})
.catch(function (err) {
// 注册失败:(
console.log('ServiceWorker registration failed: ', err);
});
});

  

  1、serviceWorker.register 方法注册一个 Service Worker 。

  参数 /sw.js :在 /sw.js  注册一个 Service Worker

  scope : 需要拦截操作的的作用域

PWA 基础学习的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

随机推荐

  1. 理解 Java 构造函数不可以继承

    参考来源:http://www.52bowen.com/a/2604620.html

  2. 支持多种格式的播放器js代码

    FLV需要播放器,其它视频格式直接插入相应的代码即可. ------------------------------------- /**   *视频播放 by zhensheng@   *参数说明  ...

  3. Java内存模型原理,你真的理解吗?

    [51CTO.com原创稿件]这篇文章主要介绍模型产生的问题背景,解决的问题,处理思路,相关实现规则,环环相扣,希望读者看完这篇文章后能对 Java 内存模型体系产生一个相对清晰的理解,知其然知其所以 ...

  4. 逻辑回归(Logistic Regression)推导

    出自BYRans博客:http://www.cnblogs.com/BYRans/ 本文主要讲解分类问题中的逻辑回归.逻辑回归是一个二分类问题. 二分类问题 二分类问题是指预测的y值只有两个取值(0或 ...

  5. php经典bug

    <?php $tem = 0=="a"?1:2; echo $tem; ?> 输出结果为:1 原因:在0=="a",这个比较中因为会将字符串&quo ...

  6. python学习笔记(6)——字典(Dictionary)

    dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...

  7. Java_大数值_16.5.12

    如果基本的整数和浮点数精度不能满足要求,那么可以使用java.math包中的BigInteger和BigDecimal这两个类.这两个类可以处理包含任意长度数字序列的数值.BigInteger类实现了 ...

  8. MFC_2.4 组合框和图片控件

    组合框和图片控件 1.拖控件 图片属性更改Type 为Bitmap 名字也要改,不能为IDC_STATIC 绑定变量控件,重命名. 2.初始化 // 设置一个定时器,用于更新图片 SetTimer(0 ...

  9. vue项目 build之后发布到服务器index.html页面空白解决方法

    第一部分 之前一直不太理解为什么要使用vue+webapck,还有在使用了vue-cli之后会用到后台,即vue-cli自动帮我们安装了express服务器,在本地服务器上运行,因为我们希望可以模拟在 ...

  10. BZOJ3124: [Sdoi2013]直径 (树形DP)

    题意:给一颗树 第一问求直径 第二问求有多少条边是所有直径都含有的 题解:求直径就不说了 解第二问需要自己摸索出一些性质 任意记录一条直径后 跑这条直径的每一个点  如果以这个点不经过直径能到达最远的 ...