问题标签 [cache-manifest]

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 投票
1 回答
1743 浏览

ipad - IOS Web App视频缓存播放问题(mp4)

您好,我在 iPad2 上运行最新版本的 iOS (5.0.1),无法正常缓存 .mp4 视频

我添加了必要的侦听器来侦听 applicationCache 事件,然后在这些事件发生时写入控制台,最值得注意的是,当我的应用程序被缓存时,如下所述: https ://developer.apple.com/library/archive/documentation /iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html

在我的 ipad 上使用移动 Safari 中的调试控制台,我可以看到消息指出我的应用程序已成功“缓存”(万岁!)。 当我重新加载页面时,一切正常,除了视频(有一个类似于指向不存在的视频源的图标;播放按钮带有斜线)。

在我的 iPad 上检查我的 Safari 的“网站数据”时,完整的视频大小(和其他文件)都在那里(~28mb)。 这在桌面 Safari(脱机时)、Chrome 等中缓存良好。 缓存应用程序时,我收到一条消息“您希望允许 www.site.com 增加大于 25mb 的缓存”,并批准下载/缓存完成。

更疯狂的是,即使我仍然在线,我的 iPad 指向本地文件,并且似乎我的 iPad 试图拉取本地视频,并且同样的错误仍然存​​在。


我也有:

  • 缓存了一个更简单的版本(1 个 html 文件 1 个视频),同样的问题。

  • 一个 1mb 的视频,同样的问题,所以这不是大小问题

在 iPad 上播放缓存的视频是不可能的吗?我可以看到mb,所以我知道它已缓存,只是无法播放。

0 投票
1 回答
177 浏览

html - 清单管理的资源可以在离线时回退到自己的缓存副本吗?

我正在使用 HTML5 清单来允许应用程序脱机工作。我有一个资源——比如/background.png——可能会不时更新,但如果应用程序处于脱机状态,则最后检索的版本适合使用。我想要的行为是让浏览器在/background.png在线时正常请求它,但如果请求因离线、服务器关闭等而失败,则回退到缓存版本。

在我的测试中,有一个清单条目,如

使浏览器总是尝试请求资源。如果它处于脱机状态,它将返回一个错误,而不是从 appcache 返回一个副本。这不是我想要的,但它是 NETWORK 应该如何表现我所理解的。

我也试过

希望这可能意味着“如果您无法获得新的缓存副本,则回退到缓存副本”,但在该配置中,如果资源在线,浏览器不会尝试请求资源。

我考虑的另一种可能性是

但是对于同一个资源有两个不同的名称——并且两次请求相同的资源(一次用于img src="background.png"一次用于缓存的脱机副本)——似乎是一个没有吸引力的 hack。

我还可以在background.png更改时对清单进行任意更改,但这会导致浏览器检查清单中的所有内容。

是否有可能从 HTML5 清单中获得这种“使用我拥有的东西,除非我能得到一个新的”模式?这似乎是一个合理的模式,所以我认为会有一种干净的方式来做到这一点。如果没有,任何人都可以提出另一种方法吗?提前致谢!

编辑:原始问题提到“news.json”,暗示资源正在被 JavaScript 检索,但我已将其更改为“background.png”,以更清楚地表明我想对任何资源执行此操作被页面使用。

0 投票
0 回答
156 浏览

html - HTML5 Manifest 只看到后备

大家好,我的清单如下:

我已经修复了一个随机随机问题,即 safari 无法在没有 NETWORK * 的情况下加载谷歌地图。我现在想要做的是确保如果有人离线,他们只会点击该 offline.html 页面,我注意到有时可能会点击一个常规页面,这看起来很糟糕,然后你只会被转移到后备页面请求另一个页面后。我需要在这里添加什么吗?

0 投票
2 回答
215 浏览

javascript - 离线缓存 - html5

好的,我的缓存有问题,只是无法弄清楚 D:

每次我尝试重新加载页面(获取缓存)时,我都会收到此错误:Application Cache Error event: Failed to commit new cache to storage

有人知道为什么这不起作用吗?

链接(如果您想看到自己):

0 投票
1 回答
505 浏览

html - HTML5 清单后备 URL

我有一个在 DEV 上下文中具有 URL localhost:8080/MySite 的网站,在 test/live 上它只是 www.test.mysite.com 和 www.mysite.com

在我的清单中,我有

问题是如果用户点击localhost:8080/MySite(不是没有斜线结束)并且后备踢他们会被重定向到localhost:8080MySite哪些错误......

有谁知道这个问题,我试过/ /offline.html了,但是这破坏了清单

0 投票
1 回答
7042 浏览

node.js - 如何使用清单 Node.js 站点进行缓存

关于如何在 node.js 中添加清单缓存的早期问题,我现在的问题与如何缓存 node.js 生成的 HTML 有关。由于我们没有像 php (index.php) 这样的物理文件,因此我们无法缓存此类文件。

我们如何缓存“不存在”的页面?只需添加缓存:

知道如何解决这个问题吗?

谢谢!

解决方案:

添加路由器以返回具有正确 mime 类型的 cache.manifest 文件:

在stackoverflow上找到

0 投票
3 回答
2478 浏览

android - Android可以离线缓存带有缓存清单的HTML5视频吗?

我有一个示例,它在 chrome 上缓存得很好,并在离线时显示视频。

当我使用 android 3.2 和 4.x 平板电脑尝试此示例时,视频将仅在线播放,但不能离线播放 - 尽管 HTML 文件和背景等其他元素离线存在。

缓存清单example.appcache看起来像:

有没有人设法通过缓存清单让离线视频缓存适用于 android 浏览器?

0 投票
1 回答
935 浏览

html - 如何在 HTML5 应用程序缓存中缓存具有页面特定图像和共享资源的多个 HTML 页面?

在我的 HTML5 应用程序中,我有几个代表书籍的 HTML 文件。每本“书”都包含特定于该书的图像。每个书籍文件还包含对所有书籍共享的 CSS 和 JavaScript 文件的引用。

我想将书籍缓存在 HTML5 应用程序缓存中,以便在没有互联网连接的情况下查看它们。我想我必须为每个 HTML 书籍文件创建一个清单文件,其中包含对共享资源和书中图像的引用。HTML 文件中的标签将如下所示:

或者:

和 Book1.appcache 像:

和 Book2.appcache 像:

我不确定这种设计,这样似乎每本书都是自己的“应用程序”,但事实并非如此。另外,共享的 CSS 和 JS 文件不是缓存多次,每本书一次吗?谁能推荐一个好的解决方案?

0 投票
2 回答
255 浏览

html - 缓存清单中的设备特定资源管理

有没有办法针对每个设备的缓存中的某些资源。

我正在开发离线 html5 音频播放器。显然,我必须根据 HTML5 规范指定文件类型,例如用于 webkit 的 Mp3 和用于 firefox 的 Vorbis 等。但是,例如在 iPhone 等移动设备上使用时,我只想获取在这种情况下播放 mp3 所需的文件。我有没有办法告诉浏览器缓存特定文件,或者无论如何他们都必须添加所有资源。从而消除了用户必须缓存更多所需文件和超出限制的负担(我知道在移动 safari 中只能缓存 10MB。)

这是我的清单。

所以很明显在Firefox中我只需要缓存oga和webkit mp3。任何见解都会很棒!

0 投票
1 回答
213 浏览

html - 缓存清单中的资源管理

我正在开发离线 html5 音频播放器。显然,我必须根据 HTML5 规范指定文件类型,例如用于 webkit 的 Mp3 和用于 firefox 的 Vorbis 等。但是,例如在 iPhone 等移动设备上使用时,我只想获取在这种情况下播放 mp3 所需的文件。我有没有办法告诉浏览器缓存特定文件,或者无论如何他们都必须添加所有资源。从而消除了用户必须缓存更多所需文件和超出限制的负担(我知道在移动 safari 中只能缓存 10MB。)

有没有办法针对每个设备的缓存中的某些资源。

这是我的清单。

所以很明显在Firefox中我只需要缓存oga和webkit mp3。任何见解都会很棒!