当前位置: 首页 > 知识库问答 >
问题:

如何在service worker中缓存网络数据?

车峻熙
2023-03-14

我已经用angular 5.0和创建了渐进式Web应用程序(PWA)。net核心2.0。它在脱机模式下工作正常。但脱机模式下仅缓存静态数据。我需要将以前请求的网络数据存储在service worker缓存中,以便在脱机模式下通过service worker缓存获取这些数据。

共有2个答案

邹坚壁
2023-03-14

尝试检查HTTP缓存。

您需要做的就是确保每个服务器响应都提供正确的HTTP头指令,以指示浏览器何时以及在多长时间内可以缓存响应。

有关更多信息,您可以查看整个文档。它提供了示例和插图,以便更好地理解HTTP缓存。

于意智
2023-03-14

您也可以使用angular service worker进行此操作。

数据组-缓存外部API数据数据数据组配置允许您缓存外部API调用,这使您的应用程序可以在没有网络连接的情况下使用外部数据源。此数据在生成时未知,因此只能在运行时缓存。缓存数据源有两种可能的策略-新鲜度和性能。

api新鲜度-此新鲜度策略将尝试首先从网络提供数据,然后回退到缓存。您可以设置一个maxAge属性,该属性定义缓存响应的时间,以及一个超时,该超时定义返回缓存之前等待的时间。

api性能—性能缓存将首先提供来自缓存的数据,并且仅在缓存过期时才向网络提供数据。

你可以在ngsw-config.json.部分找到例子

 类似资料:
  • 我想创建一个网站,即使当它的服务器离线时也可以工作——我发现这就是服务工人的目的。 当我重新加载带有service worker且没有连接的页面时,它工作正常。但是,轮班重新加载(例如,绕过缓存)会解除服务工作人员的防护,并出现“无法连接到服务器”错误。 我的问题是-我是否可以以某种方式防止轮班重新加载(shift f5、ctrl f5等)破坏服务人员,或者至少在不恢复连接的情况下使其恢复?

  • 我调用服务器数据通过使用ajax在index.html.它是完美的获取这些数据。现在,我正在和服务人员一起工作。我可以缓存所有的静态资产(图像,js,css),并在Chrome开发工具的应用程序选项卡中的缓存存储中检查这些缓存的资产。我可以在网络选项卡中看到这些资产也被缓存(磁盘缓存)。 现在,我想使用ServiceWorker缓存这些ajax响应(图像文件数组)。在“网络”选项卡中,我可以看到它

  • 本文向大家介绍Android图片三级缓存策略(网络、本地、内存缓存),包括了Android图片三级缓存策略(网络、本地、内存缓存)的使用技巧和注意事项,需要的朋友参考一下 一、简介 现在的Android应用程序中,不可避免的都会使用到图片,如果每次加载图片的时候都要从网络重新拉取,这样不但很耗费用户的流量,而且图片加载的也会很慢,用户体验很不好。所以一个应用的图片缓存策略是很重要的。通常情况下,A

  • 我用ReactJS构建了一个渐进式Web应用程序,但遇到了一个问题。我正在使用mockApi获取数据。脱机时,我的应用程序不工作,因为服务人员只缓存静态资产。 如何将HTTP GET调用从mockApi保存到缓存存储?

  • 问题内容: 从缓存还原后,我需要在磁盘上缓存resp并保持其类型为http.Response。有任何想法吗? 问题答案: 最简单的方法是使用httputil.DumpResponse和http.ReadResponse。 请参阅此处的示例。(您必须将代码复制到本地计算机上并在本地计算机上运行,​​因为Playground不允许I / O) 第一个将接收到的请求转储到内存中的[]字节中,然后可以将其

  • 问题内容: 如何在WAMP中安装内存缓存? 我在中找不到任何php_memche 。 现在我该怎么做? @瑞安 感谢您的步骤,现在在WAMP中启用了内存缓存,我也已经在PHPINFO中进行了交叉检查。正在显示内存缓存。 我已经尝试过以下示例Memcache示例。但是抛出错误。 收到以下通知错误。 我错过了… 问题答案: 以下是对我有用的步骤: 所需文件 直接链接 Windows DLL文件 适用于