gpt4 book ai didi

javascript - html5应用程序缓存强制更新

转载 作者:行者123 更新时间:2023-11-28 16:04:58 25 4
gpt4 key购买 nike

window.applicationCache 有一个名为 update 的方法。我假设此函数获取 html 元素中指定的 manifest.appcache 文件,并检查差异。

这一切都很好,但据我了解,每当加载页面时,浏览器都会请求 manifest.appcache 文件并运行相同的“检查差异” “无论如何,程序。

所以我的问题是(请注意统计数据是编造的):

“如果平均更新发布周期是2周,平均页面停留时间是30秒,为什么还要有更新功能?”

对我来说,这没有意义,我认为我错过了一些东西,因此有这样的问题。

最佳答案

众所周知,某些公司(例如:IMVU)每天会多次推送更新。它通常被称为“持续部署”。在页面上花费的平均时间很大程度上取决于应用程序的体系结构。

我认为 HTML5 Appcache 主要用于缓存“单页面应用程序”的代码,即所有用户交互都发生在单个页面 View 中的应用程序 - 就浏览器而言。 Gmail 是单页应用程序的一个很好的例子。虽然它不使用应用程序缓存,但它可以。

用户可能不会将其体验为单个页面 View ,因为(实际上)整个可见文档可能会被从服务器下载的其他内容替换。用户甚至可以使用 HTML5 History API 在应用程序内“浏览”时看到其位置栏发生变化。

用户可能会连续使用单页应用程序(例如 Gmail)几个小时,如果不关闭计算机(或关闭浏览器),甚至可能会使用几天。

根据设计,浏览器被要求加载具有应用程序缓存缓存的页面(这与普通浏览器缓存的工作方式不同)将始终从磁盘加载缓存版本,这不一定是最新版本。从缓存加载意味着应用程序启动时没有任何网络延迟。仅在加载应用程序后,浏览器才会检查更新的缓存 list 。默认情况下,用户不会收到任何此类更新的通知。只有在浏览器中重新加载应用程序后,他才会看到更新。

如果用户打开应用程序几个小时,那么在此期间肯定会有更新。因此,为了最大限度地提高用户下次启动应用程序时看到最新版本的机会,应用程序应间歇性地检查更新。如果应用程序缓存 list 发生更改,缓存将被更新。下次用户启动应用程序时,浏览器将加载用户之前使用该应用程序时加载的最新版本。轮询间隔可以调整为新版本之间的预期间隔。

还可以提醒用户有可用更新。可能会出现一条不显眼的消息“应用程序更新可用,现在加载它?(确定)(关闭)”由于所有资源都已预先获取,因此重新加载几乎是瞬时的(全部来自磁盘)。更困难的是确保保留所有用户数据(和“ session 状态”)。

关于javascript - html5应用程序缓存强制更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com