问题标签 [cacheapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
114 浏览

angular - 无法从 Safari 的缓存中删除文件

在 Angular 6 应用程序中,我使用Cache API来存储和删除 MP3 文件。

在 Safari 中,当尝试删除文件时它不会被删除,并且我收到“配额超出”错误消息(在 Chrome 中它运行良好)。

我创建了一个示例 Angular Firebase 应用程序,以便您可以看到问题。

示例应用程序代码存储库

重现问题的步骤:

  1. 打开 Safari(移动设备或 Mac 电脑)
  2. 点击“保存文件”按钮
  3. 点击“删除文件”(该文件应该被删除,但它不是)
  4. 再次单击“保存文件”,您将收到“配额超出”消息。

谁能帮我看看我的代码有什么问题?

我调用删除文件的方法是removeFile()

app.component.ts

包.json

0 投票
1 回答
740 浏览

service-worker - 对频繁更改的数据的 PWA 离线功能

渐进式 Web 应用程序的离线功能对于显示经常变化的数据(如银行账户余额)的应用程序是一个好主意吗?

如果用户正在使用他的 PWA 离线模式并导航到例如银行产品余额部分,则他实际上没有查看有关其余额的更新数据并允许基于可能未更新的数据进行操作。

对于经常更改的数据,我是否错过了这种方法 (PWA) 的某些内容?

0 投票
1 回答
585 浏览

service-worker - 缓存在相对路径下的缓存存储中的项目

我正在尝试在服务人员的安装事件中使用标准技术将一些静态页面添加到缓存中:

但是当我查看缓存的项目时 - 我看到它们被缓存在相对路径下:

在此处输入图像描述

因此,当然,当完整路径的 fetch 事件发生时 - 缓存中将没有匹配项。知道为什么会这样吗?

0 投票
0 回答
593 浏览

service-worker - Service Worker 缓存事件源,xhr

我有一个正在运行并注册的服务人员 - 它向“静态缓存”添加了一堆文件 - 当文件被启动/请求时 - 它们被动态添加到缓存中 - 它正在运行并且工作正常 - 但是,我注意到实时html 中的数据没有被更新——我使用开发工具进一步调查并注意到事件源和 xhr 被服务工作者缓存——但是获取请求没有。有没有其他人遇到过这个/找到了解决方案?

在此处输入图像描述

0 投票
0 回答
488 浏览

javascript - 获取服务工作者内部缓存响应的响应头

我想在服务工作者中获取缓存响应的响应标头。这样做的目的是让我可以读取一个名为“Modified”的自定义标头,通过将其与同一 URL 的“HEAD”获取的响应标头进行比较来查看是否有必要获取数据的新副本。

在安装服务工作者时,我用一些响应填充了一个名为 v1::fundamentals 的缓存。然后我注册一个获取侦听器,它在缓存中查找请求,如果存在,则为它提供服务。然后,我想用非陈旧内容异步更新缓存,但前提是“修改”标头包含比缓存中的时间戳更新的时间戳。在下面的简化代码中,我尝试使用 headers.get() 访问标题,但我总是得到一个 null 作为回报。为什么是这样?

当我查看 Chrome devtools 中的缓存时,标头非常多,我只是无法从服务人员中获取它们。

0 投票
1 回答
342 浏览

javascript - 在 Cache API 中,使用 caches.match(event.request) 和 caches.match(event.request.url) 有什么区别

我正在与服务人员一起工作,我有以下代码

当我试图从缓存中获取这些文件时,它不起作用,但是当我将代码更改为

代替

它完美无缺

0 投票
1 回答
1074 浏览

caching - @Cacheable 注解,在不同的方法中使用相同的值

我正在尝试使用 Spring @Cacheable 注释。

当我执行第一个方法时List<User>,我得到:

  • 第一次:从数据库中选择所有字段
  • 第二次:从缓存中选择所有字段
  • 第三次:从缓存中选择所有字段

到目前为止,这很好。

当我执行第二种方法时findOne(String userId),我得到的结果来自:

  • 第一次:从数据库中选择特定字段
  • 第二次:从缓存中选择特定字段
  • 第三次:从缓存中选择特定字段

这又是好事。

当我执行第一个方法时List<User>,我得到:

从缓存中选择所有字段数据

问题:两种方法(List<User>并且findOne(String userId)具有相同的缓存名称但它们返回不同的结果。

0 投票
0 回答
209 浏览

axios - Cache API 是否有 axios 缓存适配器?

axios 是否有一个扩展,它使用 Cache API 来缓存对带有Cache API的请求的响应。

(或者也许是一个如何自己实现它的例子?)

0 投票
1 回答
262 浏览

javascript - 服务工作者 CacheAPI 使用带有 cache.matchAll 的 `Time Cached` 属性

我在我们的网络应用程序中缓存了一些数据,如缩略图和 JSON。现在我想在达到磁盘空间时删除旧数据。

Time CachedChrome 在他的网络工具中显示了缓存存储中的属性(不完美,它没有显示自创响应的正确时间) 。

所以这个数据必须在某个地方,我想使用它。

我的计划是使用属性并按属性cache.matchAll对结果进行排序Time Cached以删除最旧的结果。

但是 match All 只返回正常的响应,我没有时间缓存。

0 投票
1 回答
728 浏览

javascript - 服务工作者缓存进度

我是 Java 脚本和 PWA 的新手。

我正在尝试images/css/audio/video/.html使用我使用https://developers.google.com和其他资源成功完成的缓存 API 将我的所有内容加载到缓存中。

我现在的问题是:
很快内容加载到缓存中,SW(服务工作者)应该告诉所有内容都已加载。我试图遍历我想要缓存的静态内容,并尝试使用警报,但它说

Uncaught (in promise) ReferenceError: alert is not defined

  1. SW 如何在不点击任何按钮或交互的情况下告诉主页(比如 index.html)内容已被缓存?

  2. 如果进度条有可能显示将内容加载到缓存中的进度?

  3. 以及告诉您的实际缓存容量是“this”,加载内容后剩下的是“this”