问题标签 [application-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 投票
5 回答
26251 浏览

html - 强制 applicationCache 重新加载缓存文件

我正在使用 HTML5 applicationCache 来存储页面的许多 Javascript、CSS、图像等文件。如果我更新其中一个文件,浏览器永远不会重新加载它。我尝试了以下方法:

  • 在页面加载时调用 applicationCache.update()
  • 监听applicationCache的updateready事件,调用swapCache()和window.location.reload()
  • 向清单文件本身添加时间戳注释以强制浏览器意识到清单已更改

这肯定不会这么难。如何说服浏览器重新请求某些缓存文件?

0 投票
2 回答
452 浏览

asp.net - 我应该将自定义 AppSettings web.config 数据放入 ApplicationState 吗?

我的 web.config 文件中的 AppSettings 中有一些自定义值。

每次请求都会检查这些值。(请忽略这可能是一件坏事/好事......这超出了问题的范围)。

例如。

因此,如果每个请求都检查 web.config 文件以获取此键的值,那么将其放入应用程序缓存(例如,通过 global.asax)而不是每次请求都检查此值会是明智的吗?

我假设当我们从 AppSettings 读取值时,网站会物理读取 web.config 文件?或者当网站启动时,这些信息是否也全部读入内存,并且对任何 appSettings 信息的所有引用只是内存读取..而不是磁盘 I/O 读取?

0 投票
3 回答
1850 浏览

html - dojo 和离线应用程序缓存

我们一直在使用 Dojo 以及在较新的浏览器中提供的存储和离线功能开发一个支持离线的 JavaScript 应用程序。

该应用程序很大,但它似乎从缓存中加载了较大的文件,我可以看到该应用程序确实被缓存了。正在使用应用程序缓存功能,据我和 Chrome 所见,应用程序缓存中没有错误。

然而我们遇到了问题。显然,Dojo 无法加载其语言资源,也无法加载描述我们连接到的服务的 SMD 文件。

这些问题在目标浏览器 webkit-mobile 上非常明显。

有什么想法可能是错的吗?

0 投票
2 回答
11516 浏览

firefox - 如何使用 JavaScript 清除应用程序缓存(HTML5 功能)?

我们的 Web 应用程序使用应用程序缓存(缓存清单)以离线模式恢复 HTML 页面和资源。HTML 页面将 sessionID 作为 URI 中的参数。因此,在每次注销和登录操作之后,新的 HTML 页面都会保存到应用程序缓存中,因为 URI 中的 sessionId 已更改。在使用应用程序几周后,一些浏览器开始运行缓慢。应用程序缓存的大小(在 FF 3.6+ 上测试)约为 200Mb!每次登出后我们清除浏览器的LocalStorage,但是如何清除Application storage中的资源呢?

0 投票
2 回答
793 浏览

javascript - window.applicationCache 更新冻结浏览器 - 如何降低它们的频率或强制它们由用户启动

我创建了一个 Web 应用程序,它缓存了所有必要的代码和数据,以便通过 applicationCache 离线使用。但是,每次应用程序启动时,它都会立即尝试检查更新。这会在很长一段时间内阻止浏览器,即使它没有找到任何要更新的内容。这种行为对应用程序有很大的破坏性(不应该在后台进行更新吗?)。只是检查阶段在移动设备上需要很多时间,如果它发现更新,那么所有关于下载需要多长时间的赌注都没有了(b/c 它必须重新下载所有文件)——这也会冻结浏览器。

所以,我想知道:

  1. 有没有办法将 applicationCache 更新委托给共享的 Web Worker?或者
  2. 有没有办法阻止所有 applicationCache 更新,直到用户特别想要检查更新并按下将通过 applicationCache.update() 启动更新的按钮?或者
  3. 还有其他方法可以减少检查更新所花费的时间吗?
  4. 应用程序缓存更新不应该在后台异步运行吗?



编辑:也许清单文件上精心构建的缓存控制标头是答案?我将对此进行调查,但我希望有人能给我有关这些更新的更多信息。谢谢。


更新

好的,我玩过头球,但没有任何帮助。我开始赏金了。如果你能帮忙,请做!

0 投票
1 回答
6143 浏览

iphone - iPhone 应用程序缓存何时被清除?

我正在开发一个应用程序,该应用程序允许用户将语音(除其他外)录制到应用程序的 Documents 目录中。但是当我录制声音时,我正在录制到应用程序的缓存目录,然后在用户说“好的,保存这个”之后,我将其复制到 Documents 目录。到目前为止,所有这些工作。但是如果我尝试删除缓存中的数据文件,或者当我尝试移动它时,我会遇到问题。

所以我的问题是,我应该将数据留在缓存中以便 iOS 处理它还是需要手动删除缓存中的文件。如果是这样,我将如何去做。这是我到目前为止的代码(不起作用)

0 投票
1 回答
419 浏览

javascript - 可以对 HTML5 应用程序缓存应用任何保护或限制吗?

(我指的是应用程序缓存/清单;顺便说一下,不是本地存储。)

假设我只希望特定用户能够使用应用程序缓存。当他们登录我的网站时,根据他们的权限,该网站会告诉浏览器获取清单。客人和没有特权的客人无权访问清单。

为了避免这种情况,恶意用户可以从另一个用户的浏览器数据文件夹中复制应用程序缓存文件,或者直接下载清单文件。

有没有办法防止这种情况发生?有什么内置机制吗?

0 投票
2 回答
734 浏览

html - 防止脱机应用程序加载时的 HTML5 applicationCache 检查事件

我在http://app.bluedot.mobi有一个 HTML5/jquery 移动网络应用程序。它用于长距离比赛,通过 SPOT 卫星跟踪来跟踪竞争对手。我尚未解决的问题是,在不存在数据连接的情况下加载应用程序时,浏览器会在检查事件期间尝试获取清单时抛出“无数据连接”警报弹出窗口。即使存在数据连接,加载应用程序也可能需要很长时间。有大约 500 个文件要检查。加载应用程序(从手机)的最快方法是处于飞行模式并关闭浏览器的警报 - 不是那么优雅。

我不想对那些往往在偏远地区连接不稳定的用户强制进行更新,而是想以编程方式使用 applicationCache.update(),让用户控制该过程并加速应用程序加载(无论是在线还是离线)。

HTML5 规范和相应的浏览器实现目前是否可以做到这一点?

0 投票
3 回答
7187 浏览

html - 在登录/注销场景中以编程方式清除 HTML 5 应用程序缓存

HTML 5 离线逻辑封装在 window.applicationCache 对象中。但是,例如,当用户从系统注销时,似乎无法以编程方式清除缓存数据。除了生成空清单文件之外,还有其他方法可以清除 HTML 5 应用程序缓存吗?

0 投票
1 回答
5248 浏览

ipad - iPad 主屏幕应用程序每次打开都会刷新

我正在使用 HTML5 和 SenchaTouch 为 iPad 编写一个网络应用程序。该应用程序使用缓存清单离线运行。一旦它被添加到主屏幕并在没有 Safari 的情况下打开,它会在每次打开时自行刷新,即使只是导航到主屏幕并返回。期望的行为是离开应用程序,做其他事情,然后回到应用程序,一切都保持不变。

可以在此处找到显示相同(不希望的)行为的类似应用程序的示例:http: //ignitedmediadesign.com/WebApp/index.html

我读过使用缓存清单应该可以解决 iPhone 上的这个问题(http://www.stevesouders.com/blog/2011/06/28/lack-of-caching-for-iphone-home-screen-apps / ),但似乎对 iPhone 或 iPad 都没有效果。

还有其他方法可以解决这个问题吗?缓存清单文件有什么秘密可以阻止我可能错过的吗?