Service Worker Cache 和 HTTP Cache 的区别
本文阐述在 Service Worker 缓存和 HTTP 缓存层中使用一致或不同的过期逻辑的优缺点。 虽然 Service Worker 和 PWA 正在成为现代 Web 应用程序的标准,但资源缓存已变得比以往任何时候都更加复杂。 对于前端开发者来说,有必要了解 Service Worker 缓存和 HTTP 缓存的用例和区别,以及与常规 HTTP 缓存策略相比,不同 Service Work
Service Worker cache 相比 HTTP cache 的一些优点
除了对缓存逻辑能提供更细粒度的控制之外,Service Worker 缓存还提供: 为您的源提供更多内存和存储空间:浏览器按源分配 HTTP 缓存资源。 换句话说,如果您有多个子域,它们都共享相同的 HTTP 缓存。 无法保证您的源/域的内容会长时间保留在 HTTP 缓存中。 例如,用户可以通过从浏览器的设置 UI 中手动清理或触发页面上的硬重新加载来清除缓存。 使用服务工作者缓存,您的缓存
Web Server 设置缓存响应字段的一些推荐方案
前端开发人员的一个常见误区就是,看到下图这种没有附带 cache control 的 HTTP 响应头部字段,就误认为 HTTP 缓存已经被禁用了,其实不然。 省略 Cache-Control 响应标头不会禁用 HTTP 缓存! 相反,浏览器有效地猜测哪种类型的缓存行为对给定类型的内容最有意义。 版本化的 URL 是一种很好的做法,因为它们可以更容易地使缓存的响应无效。 在响应对包含指
HTTP 请求响应头部字段里 ETAG 的用法举例
ETAG 属于条件请求(Conditional Request)范畴下的概念。 条件请求是浏览器可以询问服务器是否有更新的资源副本的请求。 浏览器将发送一些关于它所持有的缓存资源的信息,服务器将确定是否应该返回更新的内容或者浏览器的副本是最新的。 在后者的情况下,返回 304(未修改)的 HTTP 状态。通过设置 ETag 或 Last-Modified,可以触发 HTTP 请求头部字段中提到的
Service Worker Cache 和 HTTP Cache 联合使用的场景讨论
本文基于下列的表格进行讨论。 场景1:Long-term caching (Cache, falling back to network) 当缓存资源有效时(<= 30 天):Service Worker 立即返回缓存的资源,无需访问网络。 当缓存资源过期(> 30 天)时:Service Worker 去网络获取资源。 浏览器在其 HTTP 缓存中没有资源的副本,因此它在服
在 Chrome 开发者工具里通过 network 选项模拟网站的离线访问模式
Service Worker 缓存 API 的一个主要优点是它为您提供了比内置浏览器缓存更详细的控制。 例如,Service Worker 可以在用户首次运行您的 Web 应用程序时缓存多个请求,包括他们尚未访问的资产。 这将加快后续请求。 还可以实现自己的缓存控制逻辑,确保被认为重要的资产保留在缓存中,同时删除较少使用的数据。 如果使用缓存头来缓存页面上的元素,用户触发的刷新将使浏览器跳过 H
Angular 里的 Service Worker
从 5.0.0 版本开始,Angular 附带了一个 Service Worker 实现。 Angular 开发人员可以利用这个 service worker 并从其提供的更高的可靠性和性能中受益,而无需针对低级 API 编写代码。 这个实现就是 SAP 电商云 Spartacus UI package.json 中提到的依赖 @angular/pwa: Angular 的 Service
关于 Angular PWA 应用中的 ngsw.json 文件
将 Angular Service Worker 想象为安装在最终用户的 Web 浏览器中的前向缓存(Forward Cache)或内容交付网络 (CDN) 边缘。Service Worker 响应 Angular 应用程序对本地缓存中的资源或数据的请求,而无需等待网络。 与任何缓存一样,Service Worker 缓存具有内容过期和更新方式的规则。 关于应用版本的概念在 Angular
SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别
相信不少朋友在使用 SAP ABAP Gateway Client 测试 OData 服务时,都看到过这三个相似的 HTTP 请求类型:PUT, MERGE 和 PATCH. 这三种类型有什么区别呢? PUT:将 HTTP 请求(payload)作为输入,这个输入将被传入 OData 模型的 DPC Class 的 UPDATE_ENTITY 方法中。 例如我们通过 PUT 传入如下
Angular 应用要启用 Service Worker 所需满足的一些前提条件
要使用 Angular 服务工作者的所有功能,请使用最新版本的 Angular 和 Angular CLI。 当前 SAP 电商云 Spartacus UI 使用的 Angular 版本:^13.3.0 要注册 Service Worker,必须通过 HTTPS 而不是 HTTP 访问应用程序。 浏览器会忽略通过不安全连接提供服务的页面上的服务工作者。 原因是 Service Worker
SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
授人以渔 - 如何自行查询任意 SAP UI5 控件属性的文档和技术实现细节试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的使用方法
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP UI5 FileUploader 控件实现本地文件上传,接收服务器端的响应时遇到跨域访问错误
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP UI5 FileUploader 控件深入介绍 - 为什么需要一个隐藏的 iframe 试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP UI5 FileUploader 的隐藏 iframe 设计明细
其实现代码位置如下: /** * Helper to retrieve the I18N texts for a button * @private */ FileUploader.prototype.getBrowseText = function() { // as the text is the same for