Javascript Service Worker缓存未在阵列中存储所有文件

Javascript Service Worker缓存未在阵列中存储所有文件,javascript,arrays,caching,service-worker,web-frontend,Javascript,Arrays,Caching,Service Worker,Web Frontend,我目前正在从事一个项目,该项目涉及创建一个离线应用程序,在缓存中存储大量文件。(准确地说是432) 由于每个用户所需的文件都是动态的,所以我有一个方法来创建数组并将其传递给服务工作者。这一切都很好,如果我只是打印数组,它包含完整的文件列表 当我在加载所有内容后检查缓存存储时,问题就出现了,由于某种原因,总共存储了49个文件,而没有提示其余文件发生了什么 我使用的是Firefox,我知道缓存在50mb之后有无限的存储空间。存储这49个文件后使用的总内存不足19mb,因此我认为这不是内存问题 我已经

我目前正在从事一个项目,该项目涉及创建一个离线应用程序,在缓存中存储大量文件。(准确地说是432)

由于每个用户所需的文件都是动态的,所以我有一个方法来创建数组并将其传递给服务工作者。这一切都很好,如果我只是打印数组,它包含完整的文件列表

当我在加载所有内容后检查缓存存储时,问题就出现了,由于某种原因,总共存储了49个文件,而没有提示其余文件发生了什么

我使用的是Firefox,我知道缓存在50mb之后有无限的存储空间。存储这49个文件后使用的总内存不足19mb,因此我认为这不是内存问题

我已经搜索了服务人员的问题,没有发现有人遇到同样的问题,所以我希望这里有人能帮助我

  • 干杯:)

正如杰夫·波斯尼克(Jeff Posnick)所说,Chrome开发工具一次显示50个条目(0-49)。
在底部,它应该显示条目的总数,如:
total entries:xxx

我不知道问题可能出在哪里,但我建议您尝试从SW单独记录(console.log)每个单独的缓存操作(启动提取、获取响应、将其放入缓存等),并查看哪里出错。您是否在软件中使用一些实用程序库?尝试使用Chrome dev工具检查软件和缓存存储(不确定它们在FF端是否成熟)。此问题不是在获取事件中出现的,而是在手动将文件加载到缓存中时出现的。(类似于在安装事件中加载文件的方式,只是在生命周期的后期完成,因为这些文件是在安装事件触发后创建的)我在将阵列添加到缓存之前就记录了阵列,并且它是完整阵列-因此没有指示为什么完整阵列未存储到缓存中。由于应用程序的性质和支持问题,没有使用任何库。不幸的是,应用程序没有在Chrome上运行。我知道Chrome的缓存DevTools viewer一次加载50个结果,然后让您单击箭头移动到下一页,共50个结果。Firefox可能也能做到这一点,也许它能解释你看到了什么?您可以通过JavaScript使用
caches.open('my-cache-name')。然后(cache=>cache.keys())。然后(requests=>requests.map(request=>request.url))。然后(console.log)
就是这样!花了几天时间试图修复我的代码,结果整个过程都是正确的。Firefox缺少指向缓存第二页的小箭头。谢谢你的帮助:)