【问题标题】:HTML 5 Application Cache DON'T cache file manifest command in?HTML 5 应用程序缓存不要在其中缓存文件清单命令?
【发布时间】:2013-11-28 21:57:23
【问题描述】:

好的,下面是我的清单文件。

CACHE MANIFEST
#r3

NETWORK:
*

CACHE:
/js/jquery.maskedinput.js
/js/less-1.5.0.min.js
/css/styles.less
/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
/css/images/ui-bg_glass_45_0078ae_1x400.png 
/css/images/ui-icons_e0fdff_256x240.png
/css/images/ui-icons_0078ae_256x240.png  
/css/images/ui-icons_056b93_256x240.png
/css/images/ui-bg_gloss-wave_75_2191c0_500x100.png
/images/logo.png
http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js

FALLBACK:
/ /offline.php

在 html 标签上的文件 index.php 中,我有以下内容

<html manifest="/cache.manifest">

缓存确实有效,但效果太好了。我没有在文件中告诉它我想要缓存 index.php,但默认情况下它似乎假设您想要缓存它被调用的文件。

对于我的程序,我不想不想这样做。我只希望它缓存其他资源以帮助提高移动设备的带宽,然后在没有互联网连接时有一个备用页面。

现在它总是使用 index.php 的缓存版本,因此访问我的页面的访问者永远不会看到 offline.php,因为它缓存了它。

如何防止文件假设它想要缓存声明清单的文件? (或者在我的示例中为 index.php)。

【问题讨论】:

    标签: html browser-cache html5-appcache


    【解决方案1】:

    您需要重新考虑应用流程。如果登录页面未加载,浏览器将如何启动您的应用程序的离线版本? (在离线系统的情况下)。当您离线时,用户需要指向离线页面。如果页面未离线,则浏览器将永远不会读取清单文件,因此永远不会到达清单中的后备选项。

    附带说明:.manifest 扩展名是 out of date。使用 .appcache 扩展名以及来自服务器的正确标头。

    【讨论】:

    • 感谢更新文件扩展名,没想到已经过时了。
    【解决方案2】:

    我找到了一个效果很好的解决方案 (My HTML5 Application Cache Manifest is caching everything),它已在此处列出。

    它谈到了使用 iFrame。通过将 html 缓存命令放在 iframe 中并将 iframe 隐藏在 index.php 页面上,我可以缓存所有其他文件,甚至可以正确创建后备文件。这是一种 hack,但它可以完成工作:)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2015-04-12
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多