React脚手架工程化项目里ServiceWorker.js文件作用

该文件主要涉及到离线支持和网络恢复能力

一个好的渐进式 Web 应用,不论网络状况如何都能立即加载,并且在不需要网络请求的情况下也能展示 UI (即离线时)。

再次访问 http://Housing.com 渐进式 Web 应用(使用 React 和 Redux 构建)能够立即加载离线缓存的 UI。
我们可以用 Service Worker 实现这一需求。Service Worker 是一个后台 worker,可以看做是可编程的代理,允许开发者控制 request 执行其他操作。使用 Service Worker,React 应用得以(部分或全部)离线工作。

注意:

注意:Service worker 能够应用于渐进式增强。尽管浏览器支持程度还有待提升,但只要网络畅通,不支持此特性的用户也能充分体验 PWA (渐进式 Web 应用程序)。

其他类似问题:

使用React官方的脚手架工具create-react-app创建的项目,目录中会存在serviceWorker.js这个文件,这个文件的作用是什么呢?

解释PWA:

这个文件可以使用也可以不使用,使用它可以使你的react项目变成一个PWA(Progressive Web Application)

通俗理解:

也就是说,在线上,只要访问过一次你的网站,下一次即使没有网络,这个应用依然可以被访问。当然,它的好处不仅这么一点点,在移动端打开项目时,如果你用的是chrome或者firefox这样的高级浏览器,浏览器会给你的页面不太一样的显示,你的网页看起来会更像原生App,实际上体验也更爽。

相关文件:manifest.json

在项目的public目录下,存在一个manifest.json文件,你可以在这里对你的网页做一些配置,当用户访问网页,生成一个网页的桌面快捷方式时,会以这个文件中的内容作为图标和文字的显示内容。

配置好manifest.json, 使用registerServiceWorker.js,用户完全可以把你的网页快捷方式放到桌面上,因为你的网页此时支持离线访问,所以用起来和原生app的体验很接近。

注意应用场景:打包后生效、打包后生效、打包后生效

需要注意的是,只有打包生成线上版本的react项目时,registerServiceWorker.js才会有效。本地开发时,这个文件没什么效果,因为如果本地开发使用这个文件,有可能会因为缓存造成调试问题。如果真正放到线上,如果想让registerServiceWorker.js生效,服务器必须采用https协议,这也是为什么很多同学本地测试好用,线上就不好用的原因。

PWA的官方手册

.

原文地址:https://www.cnblogs.com/jianxian/p/12362519.html

时间: 2024-08-29 11:33:19

React脚手架工程化项目里ServiceWorker.js文件作用的相关文章

React 脚手架创建项目

使用react脚手架创建项目 一.首先需要安装node.js 具体如何安装参考网址:https://www.jianshu.com/p/0ddecdbb4048 下载安装包 双击打开安装文件 setup 点击next,下一步 勾选 选中勾选框,点击next,下一步 安装路径 选择安装路径,默认路径即可,点击next,下一步 安装配置 默认即可,点击next,下一步 安装开始 点击install,开始等待安装 安装中 点击finish,安装完成 finish 打开命令提示符窗口,输入 node -

php大力力 [029节] 做PHP项目如何下载js文件:使用腾讯浏览器把网上案例页面存储到本地

php大力力 [029节] 做PHP项目如何下载js文件:使用腾讯浏览器把网上案例页面存储到本地 yeah,搞定啦 php大力力 [029节] 做PHP项目如何下载js文件:使用腾讯浏览器把网上案例页面存储到本地

tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空

最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它叫work目录而不是cache目录的原因. jsp,tomcat的工作原理是当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转换成.java文件,比如将index.jsp转换为index_jsp.java文件,而后编译为index_jsp.class文件,最后tomcat

向MyEclipse的项目中导入js文件时,出现小红叉

这个问题困扰我很久.刚开始时,也没有解决,因此也在网上寻找解决方法,还是没能解决.最近做项目时再一次出现了这样的问题,于是决定还是再找找办法.在此,分享一下自己的解决方法,给正处于痛苦中的童鞋们带来解药.具体方法如下: 首先右击js文件->MyEclipse->Exclude from Validation.(其实此时小红叉就已经消失了) 然后再右击js文件->MyEclipse->run Validation. Ok.希望给小伙伴们能带来一些帮助.

修改项目里所包含文件的路径

当从一个项目里复制一个源文件到另一个项目时,除了修改头文件包含之外,还要用笔记本打开并修改下面两个文件中记录的源文件的路径

向MyEclipse中的web项目中导入js文件时,出现小红叉

这个问题困扰我很久.刚开始时,也没有重视,因此也没有在网上寻找解决方法.最近做项目时再一次出现了这样的问题,于是决定还是找找办法.在此,分享一下自己的解决方法,给正处于痛苦中的童鞋们带来解药.具体方法如下: 首先右击js文件->MyEclipse->Exclude from Validation.(其实此时小红叉就已经消失了) 然后再右击js文件->MyEclipse->run Validation. Ok,就这么easy.希望给小伙伴们能带来一些帮助.

Django_博客项目 引入外部js文件内含模板语法无法正确获取值得说明和处理

问题描述 : 项目中若存在对一段js代码复用多次的时候, 通常将此段代码移动到一个单独的静态文件中在被使用的地方利用 script 标签的 src 属性进行外部调用 但是如果此文件中存在使用 HTML模板语言中的 {{ }}方式传递相关属性值, 会导致无法正确获取. 问题现象: HTML页面拿到的值为字符串形式 : 问题解决: 静态js 文件: 1 $("#div_digg .action").click(function () { 2 // 点赞或踩灭 3 var is_up = $

create-react-app创建的项目中registerServiceWorker.js文件的作用

使用React官方的脚手架工具create-react-app创建的项目,目录中会存在registerServiceWorker.js这个文件,这个文件的作用是什么呢? 这个文件可以使用也可以不使用,使用它可以使你的react项目变成一个PWA(Progressive Web Application), 也就是说,在线上,只要访问过一次你的网站,下一次即使没有网络,这个应用依然可以被访问.当然,它的好处不仅这么一点点,在移动端打开项目时,如果你用的是chrome或者firefox这样的高级浏览器

解决项目迭代css,js文件缓存问题

项目迭代过程中,新的改版,经常会出现样式不向下兼容的情况.发布线上之后,由于导致新的html文件引用了上一版本缓存css,导致样式错乱. 只需在引用文件路径后,加上版本识别号参 version.不用更改原文件名. 版本可以自己定如1.0.1. <!-- css --><link rel="stylesheet" type="text/css" href="/UI/css/common.css?version=1.0.1">