https://codelabs.developers.google.com/codelabs/your-first-pwapp/#0

  PWA是一些技术的集合。用于消除web与其他客户端之间的差距,最大程序利用现代浏览器的技术,提供一个更像移动应用的网页体验,改善了性能,支持离线,以及能实现一些只有移动应用可以的功能。

PWA特性

  • 渐进式增强:是“优雅降级、渐进增强” 的,给支持的设备更好的体验,不支持的设备也不会更差。
  • 响应式的用户界面:可以在其他任意设备上运行
  • 离线:通过service worker可以在离线或者网速较差的环境下工作
  • 类原生应用:拥有原生应用般的体验,因为它是建立在app shell model上的
  • 持续更新:受益于service worker的更新进程,应用能始终保持更新
  • 安全:通过https来提供服务,能避免内容窥探和替换
  • 可发现:通过W3C manifestservice worker registration标识应用,让搜索引擎能够找到web应用
  • 再次访问:消息推送等特性让用户再次访问变得容易
  • 可安装:允许用户把应用保留在主屏幕,不需要通过应用商店
  • 可连接:通过URL可以轻松分享应用,不需要复杂的安装即可运行

缺点

  • 门槛高:要求服务器部署https,service worker 涉及api众多,需要单独学习
  • 浏览器支持不够全面:但最近(2017-12)Safari也支持了
  • 用户不习惯:网页代替原生应用,如让用户习惯网页可以离线工作。用户短期内不适应。

关键技术

  • Manifest
  • Service Worker
  • Push Notification

PWA与其他App的对比

  • Native App:需要下载安装,用户体验好,可离线,速度快,性能高。但维护成本高,对于其他平台需要重新开发,应用商店审核效率低,流程复杂
  • Web App:运行在浏览器中,不需要安装,跨平台,支持的设备广泛,发布灵活(不需要应用商店审核),即时上线,用户可直接使用最新版本。需要处理浏览器兼容问题
  • Hybrid App:以上两种的混合App,需要下载安装,跨平台,Web人员方便快速构建,可以上传到应用商店,可以基于浏览器进行调试,但用户体验不如原生,性能慢,技术不是很成熟

PWA介绍的更多相关文章

  1. 超详细动手搭建一个Vuepress站点及开启PWA与自动部署

    超详细动手搭建一个Vuepress站点及开启PWA与自动部署 五一之前就想写一篇关于Vuepress的文章,结果朋友结婚就不了了之了. 记得最后一定要看注意事项! Vuepress介绍 官网:http ...

  2. PWA 学习笔记(一)

    PWA 介绍 概念: PWA(Progressive web apps,渐进式 Web 应用)运用现代 Web API 和传统的渐进式增强策略来创建跨平台 Web 应用程序 它并不是一个快捷方式,而能 ...

  3. PWA - 整体(未完)

    渐进式 Web 应用(PWA) 运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序. PWA 的优势 可被发现 易安装 manifest(https://develop ...

  4. vue-cli3.x中的webpack配置,优化及多页面应用开发

    官方文档 vue-cli3以下版本中,关于webpack的一些配置都在config目录文件中,可是vue-cli3以上版本中,没有了config目录,那该怎么配置webpack呢? 3.x初始化项目后 ...

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

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

  6. java web学习总结(二十七) -------------------JSP标签介绍

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  7. 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍

      使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 来自译者 markzhai:大家也知道最近 ...

  8. 轻松把你的项目升级到PWA

    什么是PWA PWA(Progressive Web Apps,渐进式网页应用)是Google在2015年推出的项目,致力于通过web app获得类似native app体验的网站. 优点 1.无需客 ...

  9. PWA学习心得

    PWA学习心得 一.什么是PWA Progressive  Web  App , (渐进式增强 WEB 应用) 简称 PWA ,是提升WebApp的体验的一种新方法,能给用户原生应用的体验. PWA ...

随机推荐

  1. Location replace() 方法

    replace() 方法可用一个新文档取代当前文档. <!DOCTYPE html> <html> <head> <meta charset="ut ...

  2. bzoj1538 [NWERC2017]High Score

    网上的题解都很奇怪.. 经过相当长时间的思考,有了一个有效(自认为)的解法 设某一种合法分配方案完成后三个数分别变为a,b,c,其中a>=c,b>=c 此时如果让c减1,让a或b加1(设让 ...

  3. 简单了解junit的使用

    普通使用: 在没有用测试框架之前,我们要用一个main方法来跑代码,而有了像junit这样的测试框架后,就可以不用次次写个main方法了. 直接上代码,注释里有说明: package com.stuP ...

  4. Spark无法创建新线程

    Spark提交程序报错,无法创建新的线程 原因是因为这台公用机器上跑的进程太多了,需要修改Linux参数,允许用户最大进程数 查看允许用户最大进程数配置 ulimit -a 修改允许用户最大进程数配置 ...

  5. HTML 5的革新——语义化标签(二)

    HTML 5的革新之一:语义化标签二文本元素标签.分组元素标签. HTML 5的革新——语义化标签(一)中介绍了一些HTML5新加的一些节元素,一张页面中结构元素构成网页大体,但是也需要其他内容来填充 ...

  6. 接口文档管理工具rap

    git地址:  https://github.com/thx/RAP wiki : https://github.com/thx/RAP/wiki/home_cn 视频教程: http://thx.g ...

  7. Gin框架body参数获取

    需求: 记录所有请求的json数据 body, _ := ioutil.ReadAll(c.Request.Body) if body != nil { log.Info("请求body内容 ...

  8. 常用的 JavaScript 简写方法

    1.三元操作符 当想写 if...else 语句时,使用三元操作符来代替. const x = 20; let answer; if (x > 10) {    answer = 'is gre ...

  9. CF1079C Playing Piano

    思路: dp. 实现: #include <bits/stdc++.h> using namespace std; ], dp[][]; int main() { int n; while ...

  10. vscode设置html默认浏览器

    Vscode版本:1.30.2,设置方法:file→preference→settings,剩余设置如下图.