gpt4 book ai didi

ipad - ASP.NET list 文件脚本未刷新

转载 作者:行者123 更新时间:2023-12-04 03:27:36 25 4
gpt4 key购买 nike

我正在使用 MVC 和 JS 来创建一个 iPad 应用程序。关键要求之一是应用程序可以在离线模式下工作。因此,我使用 list 文件来确定缓存的脚本文件。但是,我希望在浏览器再次联机时刷新所有脚本。我已通过以下方式指定:

Network:
*

在我的脚本下面的 list 文件中。但是这不起作用,因为在线刷新浏览器时某些文件未更新。此外,如果我检查 chrome 中的开发人员工具,控制台会显示以下事件:

Application Cache Checking event
Application Cache NoUpdate event

我猜这意味着浏览器试图更新缓存但没有找到更新。

有什么想法吗?

请参阅下面我的完整 list 文件:

CACHE MANIFEST
#rev20


# Explicitly cached entries
../css/sencha-touch.css
../Site.css
../css/mycss.css
../css/application.css
../../Scripts/SenchaTouch/sencha-touch-debug-w-comments.js
../../Scripts/js/Base/Index.js
../Images/Icons/green_indicator.png
../Images/Icons/red_indicator.png
../Images/toolbar_image.png
../Images/search_icon.png
../Images/loading.gif

NETWORK:
*

编辑:

我最初的想法是一旦文件被更改就会自动更新。但是,因为浏览器依赖于 list 文件来通知它更改(我认为),所以当发生更改时,#rev 数字需要递增。即使那样,当我测试时,我也需要刷新页面几次才能让它重新加载文件。我怀疑这与浏览器加载和处理资源的顺序有关,但我找不到任何相关信息。

最佳答案

浏览器只有在检测到缓存 list 发生变化时才会更新缓存。增加修订号是强制进行更改的好方法。

浏览器检测到变化后,就会下载文件并准备新版本的缓存。浏览器不会使用新的缓存,直到它完全填满并且您刷新页面。

您可以检测新缓存何时准备就绪并刷新页面以使用此 javascript 立即开始使用它:

function updateCache(){
window.applicationCache.swapCache();
window.location.reload();
}

window.applicationCache.addEventListener("updateready", updateCache, false);

关于ipad - ASP.NET list 文件脚本未刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535634/

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