渐进式 Web 应用程序介绍

news2025/7/19 13:40:36
  • 💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】
  • 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】
  • 💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】

构建 PWA 背后的核心思想是为所有设备上的普通 Web 应用程序提供最佳用户体验。当我们通过浏览器访问 Web 应用程序时,整体体验永远赶不上原生应用程序提供的体验。因此,在可用的开放网络技术的帮助下,PWA 为使用最新版本浏览器的用户提供了增强的网络体验,与 Android、iOS 或 Windows 等依赖于操作系统的应用程序相当。

是什么让它如此酷

  • 可以从任何具有现代浏览器的设备访问它。
  • 可以像普通网站一样访问、共享和添加书签。
  • 它离线工作。
  • 它可以像任何其他具有主屏幕快捷方式的本机应用程序一样安装。
  • 它可以处理推送通知。
  • 它可以访问设备的硬件功能,如相机、蓝牙等。
  • 在开发本机应用程序时,我们需要为每个平台维护一个代码库,但开发 PWA 只需要一个代码库。因此,它降低了可维护性。
  • 本机应用程序会不断提醒用户新的更新。PWA 通过简单的页面刷新自动在后台更新内容。
  • 通过应用适当的 SEO 技术,PWA 可以被搜索引擎索引,因此可以扩大应用程序的可见性。
  • 与原生应用相比,开发 PWA 所需的时间要少得多。因此,它大大降低了开发成本。

关联

Pinterest 的网站很旧,网络性能很差。通过分析,他们意识到提升用户群的难度,尤其是在未经身份验证的网络用户数量庞大的情况下。因此,3 个月后,他们使用 React 重建了现有的 Web 应用程序,并将其转换为 PWA,从而使他们的业务实现了巨大增长。他们还成功地减少了 Web 应用程序的捆绑包大小,这也导致 CPU 性能发生了巨大变化。

结果,用户在平台上花费的时间增加了 40%,广告产生的收入增长了 44%。

PWA 的构建块

1.响应式:由于 PWA 提供跨设备兼容性,因此它必须在所有设备上响应。
2.Service worker:这是一个脚本文件,可以在不影响页面性能的情况下在后台异步运行任务。
3.HTTPS:由于 PWA 需要服务工作者,因此它必须从 HTTPS 端点托管。
4.Manifest:这是一个 json 文件,我们可以在其中包含与我们的应用程序关联的所有元数据。

让我们再深入一点……

Service worker

Service Worker 负责确保 PWA 可靠且独立于网络状态。

它可以从客户端访问缓存,并可以存储数据,例如不需要反复获取的静态资产,如样式表、html、图像等。这使 PWA 能够在离线模式下仅加载必要的数据. 因此,它可以减少页面加载延迟,也可以提高整体性能。

我们还可以让 service worker 监听网络变化期间发生的事件,并可以动态地服务、修改或拦截应用程序内的网络请求。

简而言之,PWA 的两个主要功能(例如一次性安装和缓存)是使用 Service Worker 脚本完成的。它还可以用于在用户不使用网站时处理推送通知。

HTTPS

由于以下原因,PWA 必须使用 HTTPS 协议提供服务:

1.Service Worker 需要 HTTPS 连接。
2.保护用户的隐私
3.保证内容的真实性

Manifest file

这是一个 json 文件,其中包含有关 PWA 的所有必要元数据。此文件还使 PWA 可跨设备安装。此元数据包括我们应用程序的标题、主题颜色、显示方式、添加徽标等。创建 manifest.json 文件后,我们可以将其链接到 html 文件的 head 标记中。

总结

总而言之,PWA 缩短了 Web 应用程序和原生应用程序之间的差距。毫无疑问,我们可以说 PWA 是 Web 应用程序的未来。现在世界各地的许多公司都在将他们的 Web 应用程序转换为 PWA,这确保了它将成为软件行业的开路者。

⭐️ 好书推荐

《元宇宙》

在这里插入图片描述

【内容简介】

本书以简单易懂的文字,搭配轻松诙谐的原创漫画,让更多人理解什么是元宇宙的 “宏架构”,了解从原子到比特的逻辑,明白智能合约、数学及NFT之间的关系,用图片解析未来世界,让你轻松走进虚实共生的数字时空,解锁人类新文明,设计属于自己的元宇宙。

📚 京东自营购买链接:《元宇宙》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Promise】一文带你了解promise并解决回调地狱

文章目录Promise为什么需要promise需求回调地狱Promise的基本使用promise实例promise的状态promise状态的改变promise的结果promise方法then方法通过then方法获取promise的结果then方法的返回值catch方法解决回调地狱Promise 为什么需要promise 需求 通过ajax请求id,再根据id…

2022 最新 Vue 3.0 面试题

2022 最新 Vue 3.0 面试题1、Vue 的最大的优势是什么?(必会)2、Vue 和 jQuery 两者之间的区别是什么?(必会)3、MVVM 和 MVC 区别是什么?哪些场景适合?(必会)4…

如何快速获取网页源码(直接把网站的 js css html 扒下来的)

如何快速获取网页源码? 我们在学习和研究的时候,或者看到非常酷炫的页面效果,需要网站的源代码进行借鉴,但每次需要下载网站源代码,我们都需要找到一个,下载一个,每次只能下载一个文件,非常缓慢…

vue-quill-editor富文本编辑器-扩展表格、图片调整大小

上篇文章已经讲到、vue-quill-editor的基本配置和图片转成url 这篇文章主要使用插件来完成 图片调整大小 和 表格的插件使用(这两个目前quill 版本并不兼容 如果有大神解决了还望指点) 参考文章: vue-quill-editor 富文本编辑器支持图片拖拽…

这12个前端在线工具网站,建议每个开发人员了解下

尽管前端网站开发可能会具有挑战性,但并不一定非常困难。本文将向您介绍12个重要的网站,它们能够帮助您简化前端网站开发的过程,让它变得更加快捷和愉悦。在这些网站上,您可以找到各种工具、技术和资源,包括设计素材、…

微信小程序开发入门与实战(数据监听)

作者 : SYFStrive 博客首页 : HomePage 📜: 微信小程序 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f4…

js构造函数详解

典型的面向对象编程语言(比如C和Java),存在“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例。但是,在JavaScript语言的对象体系,不是基于“类”的&#xff0…

前端基本知识介绍

目录 一.前端三剑客 1.前导 2.三剑客的分工 二.VsCode的介绍与配置 1.vscode的介绍 2.vscode的下载安装 3.vscode的使用 3.1 图形界面操作 3.3 常用插件 三.HTML基础标签 HTML基础知识 1.HTML为何物? 2.标签介绍 3.HTML属性 4.HTML标签骨架 基本的H…

微信小程序获取用户openid

小程序端直接获取: 实现代码:直接简单 wx.login({success(res) {if (res.code) {//发起网络请求wx.request({//这里填你自己的appid 和 wxspSecret url: "https://api.weixin.qq.com/sns/jscode2session?appid" wxspAppid"&secre…

2022年微信小程序授权登录的最新实现方案

微信授权登录 我们的项目开发有时候用到用户的一些信息,比如头像,昵称等。目前小程序为我们提供好了wx.getUserProfile方法以供获取用户信息,它的使用非常简单。 wx.getUserProfile方法获取用户信息 不推荐使用 wx.getUserInfo 获取用户信…

vue2.0运行导入的项目出现node:events:491 throw er; // Unhandled ‘error‘ event错误提示解决办法

只为记录自己遇到的错误。 错误提示: App running at: - Local: http://localhost:8080/ - Network: unavailable Note that the development build is not optimized. To create a production build, run npm run build. node:events:491 throw er…

微信小程序支付完整流程(前端)

微信小程序中,常见付款给商家的场景,下面列出企业小程序中,从0起步完整微信支付流程。 一,注册微信支付商户号(由上级或法人注册) 接入微信支付 - 微信商户平台 此商户号,需要由主管及更上级领导…

快速上手vue的登录界面(最新版)

文章目录一、创建vue项目二、引入依赖三、改造下项目四、写入Login视图总结这是一个非常非常适合新手的vue登录界面,总体来说美观大气,axios那部分没有发,有需要的大家可以自己进行二次开发,继续编写。 用到了技术栈有 vue/cli 5.…

vue3 | 数据可视化实现数字滚动特效

前言 vue3不支持vue-count-to插件,无法使用vue-count-to实现数字动效,数字自动分割,vue-count-to主要针对vue2使用,vue3按照会报错: TypeError: Cannot read properties of undefined (reading _c) 的错误信息。这个时…

idea如何导入jar包

通过添加Libraries的方式引入: 1、首先在根目录下创建一个 libs 的目录 2、打开 File -> Project Structure 3、单击 Libraries -> "" -> "Java" -> 选择我们导入的项目主目录,点击OK 4、注意:在弹出的方框…

Vite 完整版详解

目录 序论: vite架子分析 1、 打包构建: 2、环境变量 3、模式 4、兼容老浏览器 5、typescript相关 6、基本配置 核心配置全集 推荐两个插件插件Volar 、 Vue 3 Snippets 序论: 开发环境:ESMHMR:来实现模块的热更新;类…

前端项目性能优化方案有哪些

目录 一、 加载优化(减少http请求数) 二、图片优化 三、使用CDN 四、开启Gzip(代码压缩) 六、减少不必要的Cookie 七、脚本优化 八、前端代码结构的优化 九、SEO优化 一、 加载优化(减少http请求数&#xff09…

vue中axios的二次封装——vue 封装axios详细步骤

一、为什么要封装axios api统一管理,不管接口有多少,所有的接口都可以非常清晰,容易维护。 通常我们的项目会越做越大,页面也会越来越多,如果页面非常的少,直接用axios也没有什么大的影响,那页面…

vue3的setup的使用和原理解析

1.前言 最近在做vue3相关的项目,用到了组合式api,对于vue3的语法的改进也是大为赞赏,用起来十分方便。对于已经熟悉vue2写法的同学也说,上手还是需要一定的学习成本,有可能目前停留在会写会用的阶段,但是s…

Swagger-的使用(详细教程)

文章目录前言一、简介二、基本使用1. 导入相关依赖2. 编写配置文件2.1 配置基本信息2.2 配置接口信息2.3 配置分组信息3. 控制 Swagger 的开启4. 常用注解使用ApiModelApiModelPropertyApiOperationApiParam5. 接口调用三、进阶使用1. 添加请求头四、项目下载前言 作为后端开放…