PWA:Service worker生命周期事件对网络资源的处理

渐进式web应用(pwa)安装成功与打开页面的事件统计 里面的start_url参数进行配置,可以通过对url添加后缀进行区分,例如"start_url": "/?pwa=client", 通过客户端启动的url后缀会添加pwa=client,如果是通过网页访问则没有改后缀,具体判断方式如下。前言:上一篇文章分享了pwa如何添加到主屏幕,本文分享下如何进行通过pwa桌面图标打开网页、以及通过点击事件是否安装的事件统计。1、pwa 安装除了被动触发,也可以通过点击事件,由用户主动触发,对于用户更加友好;然后新建一个js文件进行逻辑处理。此处可以通过配置文件( 阅读详情

services worker 注册

window.onload=function(){//网页加载完执行
         if('serviceWorker'in navigator){//浏览器兼容
             navigator.serviceWorker.register('sw.js')//注册serviceworker并返回一个promise对象
             .then(resitration=>{console.log(resitration)})
             .catch(err=>{console.log(err)})
         }
     }

sw.js

console.log('111111111111111');

在这里插入图片描述

打开VS自带的服务器

在这里插入图片描述

在这里插入图片描述

services worker 生命周期

Service worker生命周期事件

** instal事件会在service worker注册成功的时候触发,主要用于缓存资源**
** activate事件会在service worker激活的时候触发, 主要用于删除旧的资源**
fetch事件会在发送请求的时候触发,主要用于操作缓存或者读取网络资源

●如果sw.js发生 了改变,install事件 会重新触发
●activate事件会在insall事件后触发,但是如果现在已经存在service worker了, 那么就处于等待状态,直到
当前service worker终止
●可以通过self.skiWaiting()方法跳过等待, 返回一个promise对象

self.addEventListener('install',event=>{   console.log('install',event);  self.skipWaiting();  });

●可以通过event.waitUntil0方法扩的参数是一个promise对象, 会在promise结束后才会结束当前生命周期函数,防止浏览器在异步操作之前就停止了生命周期

self.addEventListener('install',event=>{   console.log('install',event); event.waitUntil(self.skipWaiting());  });

●service worker激活后, 会在下次刷新页面的时候生效,可以通过self.clients.claim()立即获取控制权

self.addEventListener('activate',event=>{   console.log('activate',event); event.waitUntil(self.ClientRectList.claim() );  });

fetch事件,抓取网络请求
在这里插入图片描述

浏览器缓存技术演进:从Cookie到IndexedDB的实战对比 本文系统梳理了浏览器缓存技术的演进历程,从基础的HTTP缓存与Cookie,到Web Storage,再到现代强大的IndexedDB与Service Worker。通过实战对比,详细分析了各技术的设计哲学、适用场景与性能差异,为前端开发者构建高性能、离线可用的Web应用提供了清晰的选型指南和优化策略。 阅读详情

相关推荐

QT播放器插件内嵌浏览器配合流媒体实现国标摄像头网页端播放

基本原理在浏览器⽹页中的指定播放窗口的位置和⼤⼩,实现⼀个内嵌到⽹页中显⽰的播放窗⼝,前端还必须可对这个内嵌播放窗⼝进⾏控制,⽽且播放窗⼝必须跟随浏览器窗⼝的移动和缩放、⽹页滚动、标签页切换、关闭等操作进⾏⾃动联动。播放器可以通过QT实现。这个播放窗⼝同时提供Web Socket的服务端和JSON打包命令的解析执⾏模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制播放窗⼝。

cameravision的博客 562

service-worker系列

1. ServiceWorkerContainer service container 即navigator.serviceWorker对象 具有以下属性和方法 及事件 一. 事件 oncontrollerchange 事件, 触发时机: 当控制的sw脚本更新的时候触发 onerror事件,当sw脚本传递信息失败时触发 onmessage事件, 当service woker 工作scope是 通过postmessage传递信息触发 二.方法 register: 注册sw脚本 返回一个promis

d649237053的博客 515

MCNP 减方差技巧(最全)

MCNP的减方差技巧,核心在于不显著增加计算时间的前提下,通过修改模拟过程来降低结果的统计误差。尤其适用于,这类问题中粒子很难到达探测器区域,直接模拟效率极低栅元重要性是常用的减方差技巧,该方法主要对计算模型的不同区域定义不同的重要性数值。当粒子从重要性低的区域废物重要性高的区域,产生更多粒子,增大统计量;当从重要性高的区域进入重要性低的区域,会进行,增快计算效率。n= 中子,N;光子,P;电子 Exi= 栅元i的重要性I=栅元总数项目IMP卡是必须的,除非使用了WWN卡如果粒子进入0。

chencheng1127的博客 925

serviceWorker 服务器与浏览器之间的代理

特点: .本质上充当服务器与浏览器之间的代理服务器(可以拦截全站的请求,并作出相应的动作->由开发者指定的动作) .在web worker的基础上增加了离线缓存的能力 .由事件驱动的,具有生命周期,其生命周期与页面无关(关联页面未关闭时,它也可以退出,没有关联页面,它也可以启动) .可以访问cache和indexDB .完全异步,同步API(如XHR和localStorage)不能在service work中使用 .只能为https承载 ...

weixin_43294560的博客 3634

STM32G0定时器中断实战:HAL库配置TIM2实现精准1秒LED闪烁(附完整代码)

本文深入解析了STM32G0系列微控制器中定时器中断的配置与应用,重点介绍了如何使用HAL库配置TIM2实现精准的1秒LED闪烁。通过详细讲解时钟树分析、预分频系数与自动重装载寄存器的计算原理,并结合CubeMX图形化配置与完整代码示例,帮助开发者从底层理解定时器工作机制,掌握可复用的工程化配置方法。

weixin_29194817的博客 253

ServiceWorker系列——ServiceWorker生命周期

ServiceWorker生命周期 ServiceWorker本身是有状态的(installing,installed,activating,activated,redundant),这些状态构成了ServiceWorker生命周期: 生命周期可细分为两个过程: 安装过程(installing,installed) 激活过程(activ...

weixin_34179968的博客 673

芒果YOLOv5改进55:损失函数篇之KLD:即插即用 芒果首发原创新颖|全网唯一更新KLD改进博客,通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框,提升YOLOv5小目标

YOLOv5改进KLD损失函数:即插即用 原创新颖|芒果专栏独家首发

包括YOLOv5、YOLOv7、YOLOv8等模型改进 664

pwa-之service worker 基本概念

pwa-之service worker 基本概念pwa-之service worker 离线文件处理 学习service worker 基本概念 在本章,将涵盖以下内容 service worker准备工作 注册service worker 注册service worker细节 调试 出现错误时提供稳定版本 创建mock响应 处理请求超...

weixin_33802505的博客 467

【2022】人工智能☆✨

1. 朴素⻉叶斯⽅法是⼀种 ( ) ⽅法。A.机器学习的分类B.不确定性推理C.知识表示答案:A解析:朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法。它通过学习训练数据集来预测未知数据的类别标签,因此属于机器学习中的监督学习分类方法。选项B不确定性推理和选项C知识表示虽然与朴素贝叶斯方法有一定的关联,但它们并不是朴素贝叶斯方法的主要应用领域或定义特性。2. 关于启发式搜索描述正确的是 ( )。

super_mochi1 391

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

789

React-Boilerplate终极离线优先策略:Service Worker和PWA实现完整指南

React-Boilerplate是一个基于React.js的前端脚手架,为开发者提供了快速搭建React应用的最佳实践。在前端开发中,离线优先策略和PWA实现是现代Web应用的重要特性。本文将详细介绍如何在React-Boilerplate项目中实现Service Worker和PWA功能,让你的应用具备离线访问能力和原生应用体验。 ## 🔥 什么是PWA和Service Worker?

gitblog_00927的博客 977

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

宁波阿成的博客 847

PWA的特性、Service Worker的生命周期、拦截及缓存实例

PWA的特性、Service Worker的生命周期、拦截及缓存实例

qq_37117521的博客 863

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

2025 React PWA实战指南:从Service Worker到离线缓存的完美方案

你是否遇到过用户抱怨"没网就打不开你的应用"?或者因页面加载缓慢导致用户流失?本文将通过React生态中成熟的PWA(Progressive Web App,渐进式Web应用)解决方案,教你如何在30分钟内为React应用添加离线访问能力,使加载速度提升60%以上。读完本文你将掌握:Service Worker注册流程、三级缓存策略实现、PWA应用部署验证全流程。 ## PWA与传统Web应用的...

gitblog_00612的博客 614

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WP Calypso Service Worker:从静态 Worker 文件注册到 Push 通知的完整实现解析

本文基于 [client/lib/service-worker/README.md](https://link.gitcode.com/i/3c1c294ffea7d851774b49d9b3ef7ce6) 及其所在模块的真实源码展开,讲解 WP Calypso 中 Service Worker 模块提供的两个核心 API(`isServiceWorkerSupported`、`registerS

gitblog_00855的博客 244

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pwa学习整理 service worker

Service Worker Service Worker本质上是一个与JavaScript线程分离的单独js文件,可以拦截网络请求,缓存资源或从缓存中检索资源,传递推送信息。 与Web Worker不同,Service Worker是长期存在的,而Web Worker是临时的,计算的数据并不能保存起来。 Service只能在HTTPS或者http://localhost下运行,前者是为了保证安全...

zem 655

下一代 Web 应用应用模型Progressive Web App(PWA)- Service Worker

背景Web 应用的现状网络资源下载带来的网络延迟Web 应用依赖于浏览器作为入口没有很好的离线使用方案没有好的消息通知方案….针对以上问题,出现了PWA技术PWA简介PW...

青天诀的专栏 533

Service Worker 缓存未更新的原因与解决方案

Service Worker 缓存未更新的原因与解决方案

商务合作欢迎私信我 1万+

Paraglide JS 如何工作?从 inlang 项目到可树摇消息函数的编译器原理深度解析

Paraglide JS 是一个基于编译器(compiler-based)的 i18n 国际化库:它把 JSON 格式的翻译文件**编译成可树摇(tree-shakable)的 JavaScript 消息函数**,让未使用的译文在打包阶段就被自动剔除,i18n 包体积最多可缩小 70%。本文带你从 inlang 项目结构出发,看懂编译器如何将一行译文变成一个类型安全的函数,以及为什么这套设计能让

gitblog_09772的博客 623

为ADHD大脑构建的PWA任务辅助系统:设计、实现与踩坑

执行功能障碍让很多ADHD(注意缺陷与多动障碍)患者陷入“知道该做什么,却无法启动”的困境。传统待办清单依赖理性规划能力,反而因任务模糊、步骤庞大而加剧焦虑。渐进式Web应用(PWA)凭借免安装、离线可用、低摩擦启动的特性,成为构建个人任务辅助系统的理想载体。结合Local-first数据架构,系统将数据存储在本地,消除了网络等待与同步冲突,让“打开即用”真正落地。围绕“启动点”拆解任务、强制单任务模式、动态时间盒子以及身体双重协作机制,从执行功能补偿的角度降低了行动门槛。这种工具不仅适用于ADHD人群,也

weixin_28730549的博客 225

网络资源缓存

前端性能优化是提升用户体验和页面响应速度的关键,可以从 网络优化、资源优化、缓存优化 三个方面系统地进行。缓存优化 重复访问加速 Cache-Control、ETag、Service Worker、文件 hash。资源优化 减小体积、延迟加载 图片压缩、JS/CSS 按需加载、Tree Shaking。stale-while-revalidate(旧资源立即返回,后台更新新资源)网络优化 降低加载延迟 CDN、Gzip、HTTP/2、预加载、请求合并。一、网络优化(减少请求数、降低延迟、提升加载速度)

weixin_45825917的博客 705

ASP.NET Core Blazor托管模型详解:交互式服务端与WebAssembly如何抉择

**ASP.NET Core Blazor 托管模型**决定了你的 C# 组件代码究竟运行在哪里:是在服务器上以**交互式服务端(Interactive Server)**模式运行,还是在浏览器中基于 **Blazor WebAssembly** 客户端运行,亦或是通过 **Blazor Hybrid** 嵌入原生桌面/移动应用。本文面向新手,用最少的代码带你理解三种托管模型的工作原理、优劣势,并

gitblog_00760的博客 937

Folia 部署到手机完整指南:3 条路线把歌词动画播放器装进主屏

本文解决 Folia 部署到手机这件事:把 Web 版放到手机够得到的地址,用 PWA(可安装的网页)装成主屏应用,最后接入自己的曲库,全程不用写代码。 ## 📸 效果先睹 [![Folia 部署到手机后的全屏歌词动画效果(流光主题渲染)](https://raw.gitcode.com/GitHub_Trending/fo/folia-major/raw/7a5f975e337e5ba13

gitblog_00280的博客 221

浏览器缓存机制存储策略

浏览器缓存机制中的是三种不同层次的存储策略,它们在位置、速度、持久性和用途上有显著区别。

2301_82133855的博客 965

前端开发应该掌握的浏览器工作原理

浏览器原理与PWA 了解浏览器原理前复习一些知识 CPU 中央处理器, 解释计算机指令以及处理计算机软件中的数据, 它可以串行地一件接着一件处理交给它的任务 现代电脑上cpu通常会有多个核心, 比如经常听到的8核处理器, 4核处理器等等。 CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组 GPU 图形处理器, 单个GPU核心只能处理一些简单的任务,不过它胜在数量多,单片GPU上会有很多很多的核心可以同时工

H_ungry的博客 1040
上一篇: PWA-manifest文件添加
下一篇: 语言在线运行
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值