关于 Angular PWA 应用中的 ngsw.json 文件

简介: 关于 Angular PWA 应用中的 ngsw.json 文件

将 Angular Service Worker 想象为安装在最终用户的 Web 浏览器中的前向缓存(Forward Cache)或内容交付网络 (CDN) 边缘。Service Worker 响应 Angular 应用程序对本地缓存中的资源或数据的请求,而无需等待网络。

与任何缓存一样,Service Worker 缓存具有内容过期和更新方式的规则。

关于应用版本的概念

在 Angular Service Worker 这个特殊的上下文中,版本是代表 Angular 应用程序的特定构建的资源集合。 每当部署应用程序的新 build 时,Service Worker 都会将该构建,视为应用程序的新版本。 即使只更新一个文件也是如此。 在任何给定时间,Service Worker 可能在其缓存中拥有多个版本的应用程序,并且可能同时为它们提供服务。

为了保持应用程序的完整性,Angular Service Worker 将所有文件组合成一个版本。 分组为一个版本的文件通常包括 HTML、JS 和 CSS 文件。 这些文件的分组对于完整性至关重要,因为 HTML、JS 和 CSS 文件经常相互引用并依赖于特定内容。 例如,一个 index.html 文件可能有一个引用 bundle.js 的 <script> 标记,它可能会尝试从该脚本中调用函数 startApp()。 每次提供此版本的 index.html 时,都必须提供相应的 bundle.js。 例如,假设 startApp() 函数在两个文件中都重命名为 runApp()。 在这种情况下,将调用 startApp() 的旧 index.html 与定义 runApp() 的新包一起提供是无效的。

这种文件完整性在延迟加载模块时尤其重要。 一个 JS 包可能会引用许多惰性块,并且惰性块的文件名对于应用程序的特定构建是唯一的。 如果正在运行的版本 X 的应用程序尝试加载延迟块,但服务器已经更新到版本 X + 1,则延迟加载操作将失败。

应用程序的版本标识由所有资源的内容决定,如果其中任何一个发生变化,它就会发生变化。 实际上,版本由 ngsw.json 文件的内容决定,该文件包括所有已知内容的哈希值。 如果任何缓存文件发生更改,则 ngsw.json 中文件的哈希值会更改。 此更改导致 Angular Service Worker 将活动的文件集视为新版本。


相关文章
|
2月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
156 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
2月前
|
缓存 监控 JavaScript
Angular 应用打包和部署
【10月更文挑战第16天】Angular 应用的打包和部署是一个综合性的过程,需要考虑多个方面的因素。通过合理的打包和部署策略,可以确保应用在生产环境中稳定运行,并为用户提供良好的体验。你需要根据实际情况选择合适的部署方式,并不断优化和改进部署流程,以适应业务的发展和变化。
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
54 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
1月前
|
存储 JSON 监控
公司用什么软件监控电脑:JSON 在监控信息交互中的应用探索
在现代企业管理中,电脑监控软件广泛应用于保障信息安全和提升工作效率。JSON(JavaScript Object Notation)因其简洁和易读性,在监控信息的收集、传输和处理中扮演着关键角色。本文介绍了 JSON 在监控数据结构、信息传输及服务器端处理中的具体应用,展示了其在高效监控系统中的重要性。
38 0
|
2月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
141 2
|
2月前
|
JSON 数据格式 计算机视觉
Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)
本文介绍了如何使用OpenCV和Python根据JSON标注文件获取并绘制目标区域,同时可将裁剪的图像单独保存。通过示例代码,展示了如何读取图片路径、解析JSON标注、绘制标注框并保存裁剪图像的过程。此外,还提供了相关的博客链接,供读者进一步学习。
55 0
|
3月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
|
4月前
|
API 开发者 UED
PrimeFaces:JSF的魔法衣橱,解锁UI设计的无限可能!
【8月更文挑战第31天】本文介绍如何结合 JSF(JavaServer Faces)和 PrimeFaces 构建美观且功能强大的现代用户界面。PrimeFaces 提供丰富的 UI 组件库,包括按钮、输入框、数据网格等,支持现代 Web 标准,简化界面开发。文章通过具体示例展示如何使用 `&lt;p:inputText&gt;` 和 `&lt;p:calendar&gt;` 等组件创建用户表单,并用 `&lt;p:dataTable&gt;` 展示数据集合,提升 JSF 应用的易用性和开发效率。
71 0
|
4月前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
62 0
|
4月前
|
开发者 C# C++
揭秘:如何轻松驾驭Uno Platform,用C#和XAML打造跨平台神器——一步步打造你的高性能WebAssembly应用!
【8月更文挑战第31天】Uno Platform 是一个跨平台应用程序框架,支持使用 C# 和 XAML 创建多平台应用,包括 Web。通过编译为 WebAssembly,Uno Platform 可实现在 Web 上运行高性能、接近原生体验的应用。本文介绍如何构建高效的 WebAssembly 应用:首先确保安装最新版本的 Visual Studio 或 VS Code 并配置 Uno Platform 开发环境;接着创建新的 Uno Platform 项目;然后通过安装工具链并使用 Uno WebAssembly CLI 编译应用;最后添加示例代码并测试应用。
146 0

热门文章

最新文章