问题标签 [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 回答
1833 浏览

google-chrome - 如何清除 Google Chrome iPad 应用上的 appcache?

我编写了一个基于 HTML5 的小网络应用程序,我试图在 iPad 上使用 Chrome for iPad 应用程序进行调试。

我已经cache.manifest向我的应用程序添加了一个文件,其中包含大多数静态资源的大量缓存,但是由于我现在想要调试应用程序,因此我需要一种清除此缓存的方法。

我知道您可以在 Mac 版 Chrome 上使用:chrome://appcache-internals/但是 Chrome 的 iPad 应用程序中不存在此页面。

常规的“清除浏览数据”不会清空 appcache —<em>至少在我的情况下不会。

有谁知道如何清除 Chrome iPad 应用程序的应用程序缓存?

0 投票
1 回答
830 浏览

html - 更多奇怪的 Firefox 缓存清单行为:重定向到外部域导致 404 失败

我有一个带有缓存清单的 HTML5/Javascript(服务器上的 PHP/MySQL)应用程序,它在除 Firefox 之外的几乎所有移动和桌面浏览器上运行良好。

当我删除缓存清单时,它在 Firefox 中运行良好。因此,我无法弄清楚 Firefox 中的缓存清单有些奇怪。它正在从缓存中加载文件,即使该文件发送了 Cache-Control: no-store, no-cache 标头。

该文件处理用于获取 LinkedIn 访问令牌的 OAuth 舞蹈,并遵循以下步骤:

  1. 该应用程序使用 window.location.replace('file.php') 通过 Javascript 调用文件
  2. file.php 加载并被重定向到 file.php?param=initiate
  3. file.php?param=initiate 加载,从 LinkedIn 获取请求令牌,然后重定向到 LinkedIn 授权页面,然后被重定向到 file.php?param=initiate&otherparameters
  4. file.php?param=initiate&otherparameters 加载,otherparameters 用于从 LinkedIn 获取访问令牌,然后重新加载应用程序,因为它现在具有访问权限。

但是,在 Firefox(Windows 7 上的 16.0.2)上,我得到以下信息:

  1. 该应用程序使用 window.location.replace('file.php') 通过 Javascript 调用文件
  2. file.php 加载并被重定向到 file.php?param=initiate(FireBug 显示找到状态 302,响应标头显示位置 /file.php?param=initiate)
  3. file.php?param=initiate 加载,从 LinkedIn 获取请求令牌,但不重定向到 LinkedIn 授权页面:它显示 404 页面(FireBug 显示找到状态 302,响应标头显示位置 https:linkedin.com/身份验证链接,但 Firefox 没有转到 LinkedIn 页面,它对 file.php?param=initiate 发出另一个 GET 请求并从缓存中加载它:状态 200 OK(BF 缓存)并显示 404 页面)。

file.php 不在缓存清单中。

基本上,它不会从步骤 3 转到响应标头中的 Location 应该将其带到 LinkedIn 授权页面,但我不知道为什么不这样做。

有想法该怎么解决这个吗?

如果你想重现这个问题,这里有一个测试事件的链接。尝试发送 LinkedIn 连接请求并观看 Firebug。此活动的所有 LinkedIn 个人资料(我的除外)都是虚拟个人资料,因此不必担心向随机陌生人发送 LinkedIn 连接请求。您必须先使用您的电子邮件注册才能获得激活链接,但如果您愿意,可以使用一次性电子邮件地址。

我尝试过的一些事情:

  1. 没有缓存清单:这修复了它,但我需要离线功能
  2. 发送带有 no-store、no-cache、must-ravalidate、过去过期日期等各种排列的标头。
  3. 减少缓存清单中的条目数
  4. SETTINGS 的各种组合:prefer-online、NETWORK:*、NETWORK:https://* 等。
0 投票
1 回答
228 浏览

javascript - 使用 html 5 缓存清单时如何以编程方式更新页面服务器端而不更改缓存清单?

我有一个应用程序,它具有不同角色的不同界面

如果用户更改角色,我想缓存应用程序并更新它

示例:
角色用户 --> www.sample.com/index.jsp(用户版)
角色管理员 --> www.sample.com/index.jsp(管理员版)

案例 1:如果 user1 使用 Role User 访问 www.sample.com/index.jsp 并且他之前的连接是使用 Role User ---> 使用缓存版本

案例 2:如果 user1 使用 Role Admin 访问 www.sample.com/index.jsp 并且他之前的连接是使用 Role User ---> 更新缓存

我正在使用 jquery mobile、html 5、Java/Spring

0 投票
1 回答
681 浏览

html - 无法在清单更新时获取 iOS webapp 文件。401未经授权

我有一个 HTML5 webapp,它在通过 IIS 提供服务时运行良好,无需身份验证。

是使用 cache.manifest 文件。

无论是在 safari 中运行时,还是作为“添加到主屏幕”全屏应用程序时,一旦我更新服务器上的清单文件,应用程序就会更新。

当我打开除了 cache.manifest 之外的所有文件的身份验证时,我只会在 safari 浏览器中运行它时看到更新。

如果我将它添加到主屏幕,我无法让应用程序更新缓存。

如果我对服务器上的流量进行wireshark,我可以看到清单文件被毫无问题地获取,但清单文件中的所有文件都会遇到401 Unautorized错误。

知道如何解决这个问题吗?在 safari 浏览器中运行它正在工作..

非常感谢任何帮助。

0 投票
0 回答
3837 浏览

html - PhoneGap Android - html5 缓存远程资源(html、js、css 等)

我已经成功创建了一个 android phonegap 项目,并且能够加载远程 Web 应用程序。

关键是,我需要在设备上缓存远程资源,以便我的 phonegap 应用程序在设备没有连接时可以工作。

如果从台式电脑访问网络,缓存清单工作正常。

我需要缓存远程资源,而不是将它们与我的 apk 一起包含在 assets 文件夹中(由于客户要求,我不想每次单个 javascript/html 文件更改时都必须大量分发新的 apk)。

有没有办法做到这一点?谢谢。

编辑:找到答案:检查这些链接:

HTML5 中的应用程序缓存在 Android PhoneGap 应用程序中不起作用

http://tmkmobile.wordpress.com/tag/phonegap/

0 投票
1 回答
348 浏览

html - HTML缓存清单下载所有文件

似乎如果服务器上的缓存清单发生更改,它将重新下载文件中的所有内容?有没有办法让它重新下载一些文件?如果我只对脚本进行代码修复,然后更新清单(比如只是在其中添加时间戳注释)以强制本地副本看到已进行更改,我可能不希望重新下载尚未更改的图像但仍然需要在清单中。有没有办法在这个问题上获得更高的精度,或者它是全有还是全无?

0 投票
1 回答
134 浏览

html - 离线时清除 HTML5 Appcache

我有一个可以离线工作的网络应用程序。我想为缓存设置一个过期日期,这样如果用户在一定时间内没有重新连接到服务器,缓存就会被清除,用户就不能再使用该应用程序了。

我认为计时器部分很简单,但是当我离线时我找不到任何方法以编程方式删除缓存。我只有在线时才找到路

0 投票
1 回答
129 浏览

html - 为什么我的缓存清单没有启动?

这让我疯狂到没有尽头。我的缓存清单没有加载。我不知道为什么不。

标题如下:

0 投票
2 回答
326 浏览

php - 缓存清单缓存自身

真的被这个给难住了。

我正在尝试使用 HTML5 缓存清单缓存一些资源(是的,我知道,不要评判我),但清单似乎正在缓存自己。


清单文件实际上是一个动态 PHP 脚本,因此它具有 .php 扩展名。


设置了以下标头(如何在 Cakephp 中完全禁用缓存?


清单的 NETWORK 部分包含以下内容:

当然,清单文件本身被排除在 CACHE: 部分之外。


在同一目录中还有一个 .htaccess 文件,其中包含:


该站点是用 CakePHP 构建的,它显然有一些我不太了解的“有用”缓存机制。我假设 PHP 标头会绕过任何东西...... PHP 可以做到。


那么,我错过了什么?

0 投票
2 回答
390 浏览

javascript - IOS 6 缓存除缓存清单之外的所有内容。从未从 Web 服务器请求更新的文件

我们的 Web 应用程序在 ios 6 应用程序模式下被如此积极地缓存,以至于每次从 Web 服务器请求的唯一文件是缓存清单。我们更改了一堆脚本和 html,但应用程序从不请求新文件。如果 Web 服务器没有任何请求,我该如何解决这个问题?有没有办法可以在缓存清单中解决这个问题?请记住,我们仅使用缓存清单来缓存图像、字体等,而不是 js 本身。任何帮助将不胜感激,我很难过!

编辑1:

缓存清单的内容已更改。我什至每次都在缓存清单中放置一个 guid,以确保它不同。我已经运行 charles 并看到该页面不断请求清单,并有 200 个响应。似乎 ios 6 本机应用程序模式包装器发生了一些非常奇怪的事情。