2018年的第一篇博客,最近都去挤图书馆了,希望新年新气象。。。

简介

PWA 是一门Google推出的web前端新技术,全称是Progressive Web App,是Google在2015年提出,2016年6月推广的项目,是结合了一系列现代Web技术的组合,在网页应用中实现和原生应用相近的用户体验。

PWA并不是描述一个技术,而是一些技术的合集。PWA 是专门应对手机 Web 开发而提出的,通过新技术的成熟,实现最好的 Web + 手机 APP。就是说,让你在使用 Web 的时候感觉像是在使用 APP。

PWA特性

  • 渐进式: 确保每个用户都能打开网页;
  • 响应式: PC、手机、平板、不管哪种格式,网页都能完美适配
  • 离线响应: 支持用户在没有网的情况下都能打开网页,这里需要service worker;
  • APP化:能够像APP一样和用户进行交互
  • 常更新: 一旦web网页有什么改动,都能立即在用户端体现出来
  • 安全: 安全是第一位,给自己的网站加上一把绿锁-HTTPS;
  • 可搜索: 能够被引擎搜索到
  • 推送: 做到在不打开网页的情况下,推送新的消息
  • 可安装: 能够将web像App一样添加到桌面,不需要通过应用商店
  • 可跳转: 只要通过一个连接就可以跳转到你的web页面。(通过 URL 可以轻松分享应用,不用复杂的安装即可运行)

PWA 需要的技术

  • push(推送消息)
  • cache
  • manifest(应用清单:定义了一个基于JSON的清单,为开发人员提供一个放置与Web应用程序关联的元数据的集中地点)
  • responsive dev
  • material design
  • service worker(一部分是 cache,还有一部分则是 Worke)

PWA与其他APP

  • Native APP
    指原生App,是一个完整的App,可拓展性强,需要用户下载安装使用

  • Web APP
    指采用Html5语言写出的App,生活在浏览器里的应用,不需要下载安装

  • Hybird app
    半原生半Web的混合类App,需要下载安装

PWA在中国

总结

感觉 PWA 涉及到的 API 比较多。要想研究透彻 PWA 还需要研究它所涉及到的 API ,慢慢研究吧。

PWA web应用模型的更多相关文章

  1. web并发模型

    并发:cpu划分时间片,轮流执行每个请求任务,时间片到期后,换到下一个. 并行:在多核服务器上,每个cpu内核执行一个任务,是真正的并行 IO密集型的应用,由于请求过程中很多时间都是外部IO操作,CP ...

  2. 用 Python 理解 Web 并发模型

    用 Python 理解 Web 并发模型 http://www.jianshu.com/users/1b1fde012122/latest_articles   来源:MountainKing 链接: ...

  3. .net使用mvc模式开发web应用 模型与视图间的数据处理

    http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文 ...

  4. ASP.NET Web API模型验证以及异常处理方式

    ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations. 具体来说,比如有:[Required(Erro ...

  5. Web Api 模型验证

    1.模型建立,在模型上类上添加System.ComponentModel.DataAnnotations验证属性 public class Product { public int Id { get; ...

  6. asp.net core系列 45 Web应用 模型绑定和验证

    一. 模型绑定 ASP.NET Core MVC 中的模型绑定,是将 HTTP 请求中的数据映射到action方法参数. 这些参数可能是简单类型的参数,如字符串.整数或浮点数,也可能是复杂类型的参数. ...

  7. Web Api 模型绑定 二

    [https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.2] 1.ApiController属性使模型验证错误 ...

  8. Web Api 模型绑定 一

    [https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.2]1.模型绑定 简单模型绑定针对简单类型(如stri ...

  9. Web开发模型

    1.服务器 web服务器:pc机器安装一个具有web服务的软件,称之位web服务器 数据库服务器:pc机器安装一个具有数据管理件服务的软件,称之为web服务器 邮件服务器:pc机器安装一个具有发送邮件 ...

随机推荐

  1. Linux kernel AESNI缓冲区溢出漏洞

    解决办法: CENT OS:升级系统内核. yum update kernel UBUNTU:升级系统内核. #到 Ubuntu网站http://kernel.ubuntu.com/~kernel-p ...

  2. 理解ASM的Extent

    理解ASM的Extent 分类: Oracle 2017-04-14 10:19:44   ASM中分配空间的单位是AU,Extent包含1个或多个AU.在11g之前,1个Extent对应1个AU.而 ...

  3. Curl https 访问

    如果访问https的网页,出现: curl: (60) SSL certificate problem: unable to get local issuer certificate 将 将 CURL ...

  4. (二)无状态的web应用(单py的Django占位图片服务器)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 阅读本文建议了解Django框架的基本工作流程,了解WSGI应用,如果对以上不是很清楚,建议结 ...

  5. #if defined(__cplusplus)

    由于C++编译器需要支持函数的重载,会改变函数的名称,因此dll的导出函数通常是标准C定义的.这就使得C和C++的互相调用变得很常见.但是有时可能又会直接用C来调用,不想重新写代码,让标准C编写的dl ...

  6. 由浅入深之Tensorflow(2)----logic_regression实现

    import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_dat ...

  7. Ubuntu16.04安装和卸载MySQL 5.7

    介绍: MySQL 是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装.它使用关系数据库和SQL(结构化查 ...

  8. :Linux 系统日志管理 日志转储

    Linux日志服务器设置 使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上. 假设需要管理几十台服务器,每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看 ...

  9. C++编程中设置文件长度的方法

    转自:http://blog.csdn.net/rrrfff/article/details/6705685 bool SetFileLength(const char *FilePath, off_ ...

  10. Django学习笔记之Django的url反向解析

    0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...