用PWA构建一个完全离线的网站

news/2024/5/11 13:09:04/文章来源:https://blog.csdn.net/weixin_34015336/article/details/89649988

想象一下,你有能力去构建一个完全离线的网站,为用户提供几乎瞬间加载的体验,同时它对于不可靠的网络又是安全及富有弹性的。这听起来既不可能,又不可思议。无论你是否相信,绝大部分现代浏览器都已经内置提供了这些功能,只需要释放它们。当你利用这些强大的功能构建网站时,你便已经拥有了所谓的 PWA(Progressive Web App)。

用PWA构建一个完全离线的网站

 

PWA有什么优势

回溯到 1990 年的圣诞节,Tim Berners-Lee 爵士和他在 CERN 的团队创建了使Web 正常工作所需的所有工具。他们创建了 HTTP、HTML 和 WorldWideWeb(全世界第一个网页浏览器)。WorldWideWeb 只能运行具有超链接的简单纯文本组成的网页。事实上,这些第一代的网页仍然在线,并且可以浏览。

从几十年前回到现在,我们所浏览的网页并没有变化。当然,现在我们有了像CSS 和JavaScript 这样的功能,但网页的核心依旧是使用 HTML、HTTP 以及其他一些模块来构建,这些都是 Berners-Lee 和他的团队在多年前所创建的。这些辉煌的构建模块意味着 Web 已经能够以惊人的速度增长。然而,我们用来访问网页的设备数量也在不断增长。无论你的用户是在旅途中还是坐在书桌前,他们都无时无刻不在获取信息。我们对于 Web 的期望从未如此之高。

虽然移动设备变得愈发强大,但移动网络并不是总能满足需求。如果你使用智能能手机,你就会知道移动连接有多么脆弱。2G、3G 或 4G 本身都很不错,但是它们时常会无法连接,或者网速变得很差。如果你的业务是与 Web 相关的,这就是你需要解决的问题。

从历史上来说,原生应用 ( 安装到手机上的 ) 已经能够提供更好的整体用户体验,下载完应用,它便可以立即加载。即使没有网络连接,也并非是完全不可用的,因为设备上已经存储了供客户使用的绝大部分资源。原生应用提供有弹性、吸引人的体验的能力使得它的数量已经呈爆炸式增长。目前,在苹果和谷歌的应用商店中,已经有超过 400 万个原生应用。

同样从历史上来说,Web 无法提供原生应用所具备的这些强大功能,比如离线能力、瞬时加载和更高的可靠性。这也正是 PWA 成为 Web 颠覆者的契机。主要的浏览器厂商一直在努力改进构建 Web 的方式, 并创建了一组新功能以使 Web 开发者能够创建快速、可靠和吸引人的网站。PWA 应该具备以下特点 :

  • 响应式
  • 独立于网络连接
  • 类似原生应用的交互体验
  • 始终保持更新
  • 安全
  • 可发现
  • 可重连
  • 可安装

这是 Web 开发者构建网站传统方式的一种转变。这意味着我们可以开始构建能应对不断变化的网络状况或无网络连接的网站。这还意味着我们可以建立更吸引人的网站来为用户提供一流的浏览体验。

读到这里,你可能会想,这太疯狂了。那些不支持这些新功能的老浏览器怎么办? PWA 最棒的一点就是它真的是渐进式的。如果你构建一个 PWA,即使在一个不支持的老旧浏览器上运行,它仍然可以作为一个普通的网站来运行。驱动 PWA的技术就是这样设计的,只有在支持这些新功能的浏览器中才会增强体验。如果用户的设备支持这些新功能,那么他将获得所有额外的好处和更多的改进功能。无论怎样,这对你和你的用户来说都是双赢。

PWA基础

那么 PWA 到底是由什么组成的呢?我们一直在讨论它们的功能和原理,但真正使某个网站成为 PWA 的到底是什么呢?最简单的 PWA 其实只是普通的网站。普通网站是由 Web 开发者所熟悉和喜欢的技术所创建的,即 HTML、CSS 和 JavaScript。然而, PWA 却更进一步,它为用户提供了增强的体验。我非常喜欢谷歌 Chrome 团队的开发人员 Alex Russell 的描述方式 :这些应用不通过应用商店进行打包和部署,它们只是汲取了所需要的原生应用功能的网站而已。

PWA 会指向一个清单(manifest)文件,其中包含网站相关的信息,包括图标、背景屏幕、颜色和默认方向。

PWA 使用了叫作 Service Worker 的重要新功能,它可以令你深入网络请求并构建更好的 Web 体验。当你开始用它,还可以将进一步了解它以及它带给浏览器的改进。PWA 还允许你将其“添加”到设备的主屏幕上。它会像原生应用那样,通过单击图标便可让你轻松访问一个 Web 应用 。

PWA 还可以离线工作。使用 Service Worker,可以选择性地缓存部分网站资源以提供离线体验。如果你现在在没有网络连接的情况下浏览网站,那么对于绝大多数网站,你所看到的屏幕应该类似于下图。

用PWA构建一个完全离线的网站

如果你迫切需要获取这些信息,离线页面可能会非常令人沮丧

用户无须再面对恐怖的“无网络连接”屏幕了。使用 Service Worker,可以拦截并缓存任何来自网站的网络请求。无论是为移动设备、桌面设备还是平板设备构建网站, 都可以在有网络连接或没有网络连接的情况下控制如何响应请求。

PWA 不仅仅是一组非常棒的新功能,它实际上是构建更好的网站的一种方式。PWA 正在迅速成为一套最佳实践。构建PWA 所采取的步骤将有利于访问你网站的任何人,无论他们选择使用何种设备。

一旦你掌握了开始构建 PWA 所需的基本构建模块,很快就会发现,比较高级的例子并没有看上去那么高级。一旦你熟悉了构建 PWA 的过程,会发现一切都是如此的简单。

构建PWA的业务场景

作为一名开发者,我当然知道当一项新技术或一系列功能出现时,是多么令人兴奋。但为网站发掘并引进最新最好的库或框架的强烈欲望往往会掩盖其为企业带来的价值。无论你是否相信,PWA 能为你的用户带来真正的价值,并使网站更具吸引力、更有弹性,甚至更快。

PWA 最棒的一点是可以渐进增强现有的 Web 应用。我们讨论的整套技术可以应用于任何现有的网站,甚至是你正在构建的新 Web 应用。无论你选择何种技术栈来开发网站,PWA 都将与你的解决方案紧密结合,因为它只是简单地基于 HTML、CSS 和 JavaScript 。

既然你对 PWA 已经有了基本的了解,就先暂时停下脚步,想象一下用 PWA 来构建的各种可能性。假设你的在线业务是报纸,人们通过它来了解更多当地的新闻。如果你知道有人经常访问你的网站并浏览多个页面,为什么不提前缓存这些页面,这样他们就可以完全离线地浏览新闻?或者假设你的 Web 应用服务于一个慈善机构,志愿者在这个网络连接不稳定或压根无网络连接的区域进行工作。PWA 的功能将允许你构建一个离线应用,使他们在没有网络连接的现场也能收集信息。一旦他们回到办公室或有网络连接的区域,数据就可以同步到服务器。对于 Web 开发者来说,PWA 是颠覆者,并且我个人对它将带给 Web 的功能感到兴奋不已。

前文提到过可以将 PWA 添加到设备的主屏幕上。一旦添加后,它的图标便会出现在主屏幕上并可以通过单击图标来访问你的网站。

2015 年,印度最大的电商网站 Flipkart 开始构建 Flipkart Lite,它是 Web 和Flipkart 原生应用完美结合的 PWA 。如果你在浏览器中打开 flipkart.com,你会明白为什么这个网站是如此成功。它的用户体验令人印象深刻,网站的速度很快,可以离线工作,并且用起来使人愉悦。通过将它的网站构建成 PWA,Flipkart 能够显示ADD TO HOME SCREEN 操作栏。通过 ADD TO HOME SCREEN 图标到达的用户最终在网站上购买的可能性高达 70%。

用PWA构建一个完全离线的网站

ADD TO HOME SCREEN 功能是重新与用户接触的好方法

任何进入苹果或谷歌应用商店的新原生应用就像沙滩上的一粒沙。截至 2016年 6 月,每个应用商店中始终保持将近 200 万个应用。如果你开发了一个原生应用,那么它很容易就被应用商店中的海量应用所掩盖。然而,由于 PWA 是汲取了丰富功能的网站,因此可以通过搜索引擎轻松发现它们。人们可以通过社交媒体链接或浏览网页发现 PWA。构建 PWA 可以让你接触比单独使用原生应用更多的人,因为它们是为任何能够运行浏览器的平台而构建的。

我在一家小型创业公司工作,我知道编写一个可以在多个平台 (iOS、Android和网站 ) 上运行的应用是多么昂贵。有了 PWA,你只需要一个了解 Web 语言的开发团队即可。它使得招聘更容易,而且肯定便宜得多。这并不是说你不应该构建原生应用,因为不同的用户会有不同的需求,但只要你想,你就可以专注于为网络上的用户营造一个相当好的体验并使他们留下来。

当使用为 Web 构建的应用时,用户可以轻松访问你网站服务的一部分,而无须先下载庞大的安装文件。使用正确的缓存技术的 PWA 可以保存用户数据并立即为用户提供功能。随着世界各地越来越多的用户开始上网,不断为 10 亿规模的新用户构建网站变得格外重要。PWA 通过构建快速、精简的 Web 应用来帮助你实现此目标。

如果你看过一些关于软件开发的文章,一定见过围绕原生应用与 Web 应用的争论。哪个更好?各自的优势与劣势是什么?原生应用本身是非常好的,但事实上 PWA 不仅仅是将原生应用的功能引入 Web 。它解决了企业面临的真正问题,旨在为用户创造一个名副其实的可发现、快速和有吸引力的体验。


本文摘自当世唯一相关著作《PWA实战:面向下一代的Progressive Web APP》。

本书降生之前,就得到Facebook、阿里旗下UC团队、新浪旗下微博团队及百度团队的积极响应,或参与技术审校,或勤力作序推荐,可见PWA在国内已成气候、方兴未艾。前端世界紧锣密鼓,离开一会儿就会错过新角登场。在扩展链接中你可以了解到本书更详细的信息。

图书详情:京东、当当、亚马逊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_736436.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴大神指教:这三本书三个网站将为你打开Python的大门

看看下面的那条新闻,在 2016 年首次超过金融业后,IT 业平均工资以超13万元的高薪在 2017 年继续力压金融业,占据各行业平均工资水平的首位!就问你心动不心动!心动不如行动,现在就给大家提供一些零基础学pyt…

三种网站建设模式浅析-模板建站、仿站or定制网站?

目前常规的网站建设模式有三种,模板建站、仿站和定制网站。这三种建站模式都有各自的优缺点。那做网站建设选哪种模式比较好呢?小编为你分析一下。一、模板建站模板建站属于三种建站模式里价格最低的一种,百度搜索“建站模板”,可…

瑞星首推“恶意网站监测网” 每天500万网民访问挂马网站

1月8日,瑞星宣布推出“恶意网站监测网(http://mwm.rising.com.cn/)”,这是国内首个专门针对挂马网站、钓鱼网站等互联网威胁的实时监测系统,所有政府机构、企业和个人用户都可以免费浏览该网站,全面、清晰地…

小tip: 外链地址网站标志图标API应用

2019独角兽企业重金招聘Python工程师标准>>> 一、问题引导 我们经常会用到分享功能,把内容或链接分享到具有SNS性质的网站,如人人,豆瓣之类。 为了增强标示性,降低理解成本,我们都会使用这些网站的标志图标…

企业建站选择阿里云服务器配置详细教程

阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。专业快速备案,7x24小时售后支持,助企业无忧上…

国外优秀网站:世界30大汽车品牌网站设计欣赏

在当今社会,名车俨然是身份地位的象征。拥有一辆名车是很多人梦寐以求的,相信你也是其中一员。今天这篇文章收集了30大汽车的网站设计,一起欣赏这些世界顶级汽车品牌的网站。 1. Lamborghini 2. Scion 3. Infiniti 4. Dodge 5. Pontiac 6. Ch…

优秀网页设计:20个立体动感的视差滚动效果网站

作为新兴的网页制作技术,视差滚动(Parallax Scrolling)效果受到越来越多的人喜欢。这种让多层背景以不同的速度移动来形成立体的运动视差效果,虽然纯属视觉效果,但在内容滚动时形成的视觉体验非常出色!今天…

帮助你在不同尺寸屏幕下浏览网站效果的工具 - Responsivator

日期:2012-11-1 来源:GBin1.com 如果你需要开发响应式的网站的话,使用一个必要的浏览工具来检验不同尺寸屏幕下显示效果还是非常有用的,相信你肯定还记得我们以前给大家推荐的响应式网站测试工具 - Screenqueri.es,这…

网站课设——壁纸网站+留言板(PHP+wamp)

壁纸网站留言板源文件 文章目录一、实验环境二、数据库设计部分1、新建连接2、新建数据库3、创建表三、实现功能1、登录2、注册3、修改密码4、删除用户及留言5、留言板四、效果图1、首页2、登录界面3、注册界面4、留言板界面五、涉及到Wamp的一些问题六、结一、实验环境 Wamp …

Hacker News网站的文章排名算法工作原理

In this post Ill try to explain how Hacker News ranking algorithm works and how you can reuse it in your own applications. Its a very simple ranking algorithm and works surprising well when you want to highlight hot or new stuff. 这篇文章我要向大家介绍Hack…

网站关键词如何合理布局?

要做好网站优化,懂得合理布局网站关键词很重要。而我们平时写网站优化方案或是开始新站的网站优化,可以先从合理布局网站关键词开始。今天轩哥seo和大家谈网站关键词如何合理布局。网站每个页面的等级权重不同,决定了不同页面打分关键词定位有…

网站实现微博登录自动关注微博的权限,scope权限!

提示:本人是网站开发的新手,所学的一切都是自学的,所以有任何错误,请大家帮忙多多指出问题! 最近做一个网站想要实现用微博登录,并且自动关注网站官方微博的功能,其实之前我实现过这个功能&…

11_14_第六阶段:大前端进阶||07-Vue详解||P16:Vue实战快速上手【vue+element||文档网站生成工具docsify】【观看狂神随笔】

Vue:实战快速上手 有些控件也可以配合Layui来实现动态的弹窗出来 现在的主流 桌面化应用:ElementUI弹窗化应用:Layui 1.创建工程 注意: 命令行都要使用管理员模式运行 (1.1)创建一个名为 hello-vue 的工程 ,注意目…

用PhantomJS来给AJAX站点做SEO优化

转 https://www.mxgw.info/t/phantomjs-prerender-for-seo.html 腾讯问卷所有动态内容,全部由Ajax接口提供。 众所周知,大部分的搜索引擎爬虫都不会执行JS,也就是说,如果页面内容由Ajax返回的话,搜索引擎是爬取不到部分…

个人网站设计:25个国外优秀案例带给你灵感

个人网站正变得越来越流行,它们可以有效地进行促销,找工作,个人品牌以及与朋友和家人沟通中使用。这些个人网站往往可以作为一个创造性的出口,并允许网站所有者更多的自由。 在这篇文章中,我们将分享精心设计的25例个人…

linux安装tomcat_【实战演练】Linux操作系统07-用tomcat搭建网站

#本文欢迎转载,转载请注明出处和作者。实验环境:操作系统:CentOS6.5源码程序:JSPGOU(开源代码分享:https://www.jb51.net/codes/552125.html,侵权删除)tomcat:8.0.36数据…

IE无法打开internet网站已终止操作的解决的方法

用IE内核浏览器的朋友,或许不经意间会碰到这样滴问题:打开某个网页时,浏览器“嘣”跳出一个提示框“Internet Explorer无法打开Internet 站点...已终止操作”。而大多数情况下该页面甚至非常可能看起来已经载入完成,内容能够全然显…

一人网站所有的 ip地址_网站如何防御DDOS攻击?

分布式拒绝服务攻击(DDOS)是目前常见的一种网络攻击方法,它的英文全称是Distributed Denial of Service?简单的说,许多DoS攻击源一起攻击服务器,形成了DDOS攻击,从而增加拒绝服务攻击的威力。通常,攻击者通…

webp转换gif工具_好用资源、软件、工具、网站 | 第14期

内容均来自网络,版权归原作者所有,侵删,我们不生产资源,只是资源的搬运工,不要把所有的给予都习惯的当作理所当然。探记一款专注于个人记录的软件。多样化的记录模板,模块间可实现数据互通。随时随地记录日常、整理生活、收藏惊喜和感动支持iOS 和Android端&#xf…

php连接mysql制作网站的教程,MySQL与PHP的连接教程步骤(图文)

本篇文章我们介绍一下PHP与MySQL的整合,既然是与MySQL整合,那么我们首先肯定是要安装MySQL。下面我们就介绍下MySQL的安装方法。第一步,下载MySQL。下载PHP可以去PHP中文网下载站下载最新版本。第二步,安装MySQL数据库第三步&…