问题标签 [manifest.cache]

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 回答
477 浏览

ios - iOS 4.3.4 中是否可以使用离线 HTML5 应用程序?

我正在尝试为具有 iOS 4.3.4 的 iPad 2 构建 HTML5 驱动的离线应用程序。我按照我在几个网站上看到的说明进行了操作,甚至能够使用 Chrome 的开发人员工具验证缓存是否正常工作:

我有一个主屏幕图标以及一个“启动屏幕”图像。我可以很好地将应用程序下载到主屏幕,并且在那里看到图标。但是,当我关闭 Wi-Fi 并尝试打开应用程序时,我得到了可怕的“无法打开,因为它没有连接到 Internet”警报。

有谁知道 iOS 4.3.4(或更早版本的操作系统)中是否发生了某些变化,从而改变了使 HTML5 的此功能正常工作的要求?

谢谢!

编辑

我在“localhost”设置之外再次尝试了这个。这是我的 HTML:

这是我的 cache.manifest 文件的内容:

我在 Chrome 的开发者工具中看到了正确的结果。我得到“应用程序缓存缓存事件”。它只是不能离线工作。我真的被这里难住了...

有谁知道我可以将完整代码复制到我的服务器并尝试的任何页面?

谢谢...

0 投票
1 回答
1922 浏览

html - HTML5离线存储会不会总是把不同GET参数的URL当作不同的资源?

如果我使用 HTML5 离线存储来缓存清单中的文件,如下所示:

那么如果页面包含这样的代码会发生什么?:

我的实验表明,离线存储render_image.phprender_image.php?look_ma_get_parameter. 这是我想要的行为,所以很好。但我想确保这是我可以依赖的东西,而不仅仅是我测试的浏览器的行为。

我可以依靠这种行为吗?它是规范的一部分吗?

0 投票
2 回答
4166 浏览

html - HTML5 离线 Appcache 更新未在 Firefox 中显示

我的 docroot 中有一个 index.php 文件。它产生以此开头的输出:

manifest.appcache 告诉浏览器缓存它以供离线使用。再次,相关部分:

离线访问在此设置下工作正常,但更新不像我在 Firefox 中所期望的那样工作。

在 Chrome 和 Safari 中,当我更新 index.php 文件然后更改 cache.manifest 文件中的注释时,浏览器将获取新的 index.php 输出并在缓存中使用它。

但是,在 Firefox 中,我似乎并不关心我是否更新了 manifest.appcache 文件。我怀疑如果我等待足够长的时间,它会更新,但我已经尝试等待几个小时。

如何找到并消除我的缓存问题?

0 投票
1 回答
278 浏览

ruby - 将 Manifesto gem 与 Sinatra 一起使用

我对 Ruby 和使用 Sinatra 非常陌生,主要是为了可以对 Web 应用程序和 HTML5 中可用的一些新东西进行一些快速原型设计。

我正在尝试使用 Manifesto 生成离线 Web 应用程序所需的应用程序缓存。

我遵循了github 上列出的示例,如下所示:

我可以去 localhost:4567/manifest ,我看到它生成的东西就好了。我不清楚的是在那之后该怎么做。我的第一次尝试是查看 Web Inspector 中发生的事情,但它似乎根本无法识别任何应用程序缓存。

接下来,我尝试将访问 /manifest 时生成的信息复制并粘贴到 app.manifest 文件中,并在<html>我的 layout.erb 中引用它。依然没有。而且,我认为这并不是真正的意图,因为清单不会像 gem 所暗示的那样更新。

有人可以帮助新手了解下一步该做什么吗?:)

谢谢!

此外,我正在使用最新版本的 Rack,它应该支持应用程序缓存的 mimetype。

0 投票
4 回答
25144 浏览

html - 删除 HTML5 离线 AppCache

我有一个带有关联 appcache 清单的 HTML 文档。但现在我想暂时摆脱离线应用程序缓存。

如果我从标签中删除清单<html>,已经有缓存版本的浏览器将继续使用该缓存版本。

如果我更新 appcache 清单,无论如何,仍然有一个 appcache。

删除离线应用程序缓存最明智的方法是什么?我想我可以将清单更改为没有以下条目:

然后它实际上不会缓存任何东西。

但肯定有办法完全摆脱 appcache 和清单文件,不是吗?

0 投票
3 回答
2630 浏览

html - 从 HTML5 离线应用缓存中省略当前页面,但使用缓存的资源

出于性能目的,我想让我的一些网页使用已缓存以供离线使用的资源(图像、CSS 等),但不让页面本身缓存,因为内容将动态生成。

一种方法是重构我的页面,以便它们通过 AJAX 加载动态内容或在 LocalStorage 中查找内容。细节可能会有所不同,但从广义上讲,类似的东西。

如果可能的话,我更愿意找到一种方法来简单地指示浏览器为页面使用缓存的资源(同样是图像、CSS 等),而不是实际缓存(动态生成的)HTML 内容本身。

有没有办法使用 HTML5 离线应用缓存来做到这一点?我的印象是答案是否定的,因为:

  • 包含清单的任何页面都将被缓存,因此我无法在页面本身中指定缓存的资源。
  • 没有办法告诉前一个页面“使用其他页面的离线资源,但实际上并不缓存该页面上的 HTML”。您必须指定页面本身,这意味着 HTML 将被缓存。

我错了吗?似乎可能有一些棘手(或不那么棘手)的方法。现在我已经把它打出来了,我想知道是否在NETWORKappcache 清单的部分中明确地包含该页面是否可以解决问题。

0 投票
2 回答
1228 浏览

node.js - Jade-lang 添加清单文件

我想知道如何使用jade-lang 和express 将清单文件添加到node.js 站点。我在 github 中发现这是一个问题 239 。我的问题是如何在等待问题解决的情况下将一些数据添加到缓冲区中。

谢谢!

0 投票
3 回答
17584 浏览

manifest - 我的 HTML5 应用程序缓存清单正在缓存所有内容

更新:

** 当这个功能真的很新时,我发布了这个问题,我现在意识到这个功能不应该以这种方式使用,除非它通过 JavaScript 使用。但对于大多数犯同样错误和滥用此功能的初学者来说,似乎这个 hack 是一个很好的解决方案。如果您想缓存除 HTML 之外的所有内容,这应该使用 JS 完成,或者您可以使用下面的解决方案**

我想我的问题归结为:如果使用 HTML 标记的清单属性引用清单的文件属于 MASTER CACHE ENTRIES,那么动态页面如何使用清单。

我的文件如下所示:

现在的问题是,一旦我浏览了不在清单中的页面,我的实际动态 php 文件(如 index.php),当我第一次看到该页面并且没有缓存 chrome 时:

到目前为止一切顺利,直到我实际加载一个页面,并且 chrome 运行:

现在正如您在最后一行中看到的那样,它将 index.php 添加到我的应用程序缓存中,我通过转到 url 验证了这一点:chrome://appcache-internals/

它说:

index.php 和 home.php 之类的东西不应该被缓存。如果可能,我想告诉它不要缓存任何 html 扩展。但这是我从各种 RFC 中学到的东西:一个在线白名单通配符标志,它要么是开放的,要么是阻塞的。

好吧,我想使用这些在线白名单通配符标志之一并将其设置为阻止,但我找不到更多解释或示例。我还读到:

我也想使用一些这样的模式,但我又找不到任何文档。为什么没有 appcache 清单文档的迹象,而且我去过的其他网站也没有使用它,因为我的 chrome appcache 目录没有显示!?!?

感谢您的时间!

0 投票
0 回答
445 浏览

c# - 如何使用 html5 获得完整的离线支持

这一直困扰着我,我有一个需要离线支持的 .net MVC 应用程序。我将 Manifest 文件动态呈现为视图。

在使页面刷新时,我观察到的是-

  1. 第一次一切都是新鲜的。
  2. 第二次,浏览器 (Chrome) 只请求 Manifest 文件。
  3. 现在在所有后续请求中,仅请求 Manifest 文件(服务器返回 200 响应)并从缓存中获取其他文件。

这并没有给我完整的离线支持,因为浏览器仍在向服务器发出请求。理想情况下,如果应用程序支持离线功能,它应该在我的 IIS 停止时仍然可以工作,对吗?

为了解决这个问题,我只在清单文件中添加了 2 小时的到期日期(例如)。这使我的问题在两个方面变得更糟-

  1. 除非清单文件过期,否则浏览器不会在重新联机时获取最新数据。
  2. 如果应用程序仍然离线 2 小时后,它会返回 404 错误(不知道为什么),因为清单文件已过期并且服务器已关闭。
0 投票
1 回答
226 浏览

html - 挂在缓存清单文件上的 HTML5 浏览器

我正在使用 HTML5 appcache 并且大多数情况下它运行良好。然而,有时,用户的浏览器(Chrome 或 Safari)会保留缓存的清单文件,即使我确信服务器有一个全新的清单文件,其中包含一个唯一的版本号(例如“# app version 1.0.0.8" 或其他)。

在 IIS(版本 6)中,内容过期设置为 1 天,这可能是问题所在吗?我似乎无法重现这个使调试变得困难的问题。作为预防措施,在 IIS 中,我已将存储清单文件的目录的内容过期更改为“立即过期”。这可以解释为什么即使有新版本可用,一些浏览器也会挂在清单文件上?

我还注意到,当浏览器以这种方式运行时,即使我删除了服务器上的清单文件,用户的浏览器也会使用它自己的清单文件缓存副本,如果文件不再可用,则不应该发生这种情况在我的理解中。

谢谢,

安迪