javascript - Safari 不使用应用程序缓存 list

标签 javascript caching safari browser-cache html5-appcache

我正在构建一个 HTML5 网页游戏,准确地说是经典小行星游戏的衍生版。我遇到的问题是,与 Chrome 或 Firefox 不同,Safari 不会自动缓存和使用 .wav 声音文件。如果出现大量声音,这将导致严重的延迟。在每次需要“射击”声音的情况下,浏览器都会执行一个新的 GET 请求来获取音频文件,如下所示:

Audio files Cached:No

你会看到151013__bubaproducer__laser-classic-shot-2.wav是通过网络一遍又一遍请求的射击声音,没有被缓存。为了强制 Safari 缓存此文件,我创建了一个 Asteroids.manifest 文件供应用缓存使用:

enter image description here

是的,这是相对于 index.html 和 Asteroids.manifest 的正确目录位置。 list 文件似乎已被使用,因为它在 Safari 的调试器存储中可见:

enter image description here

如果您有任何建议,请告诉我,因为我已经尝试了 .manifest 文件的各种不同设置,包括将其命名为 .appcache,确保它提供了 MIME 类型的文本/缓存- list ,并删除 NETWORK/CACHE/FALLBACK 字段

编辑说明:window.applicationCache.status()为1(Idle)

最佳答案

我认为即使在 list 文件中列出,Safari 也不会缓存音频文件。您是否尝试过将音频编码为 BASE64 字符串并在启动时解码/转换回音频?看看 WepApi ,它可能会帮助您完成该过程。

关于javascript - Safari 不使用应用程序缓存 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665191/

相关文章:

javascript - 使用 Node 附加到 json

javascript - 当从不同系统/浏览器同时调用同步方法时,两条记录会插入数据库中

symfony - 使用 Symfony2、Twig 和 Assetic 时,如何缓存 LESS 文件中引用的文件?

html - 为什么 Safari 选择灰色而不是白色

javascript - 如何仅在 URL 满足特定条件(('validate' 检查)时启用 Safari 工具栏按钮扩展?

html - Safari 不显示图像,但 FireFox 可以

javascript - 如何自定义 Rails 应用程序模板

javascript - Jquery:使用 countdownTimer 获取意外的 token 非法

django - Openresty : pass a request to FastCGI if data does not found in redis cache 中带有 nginx 的 Lua

java缓存hashmap每天过期