2011-01-07 65 views
6

我正在试验HTML5 appCache功能,因为我们的Web应用程序使用了大量图像资源。大多数页面也不是静态的,而是基于Django的动态页面。使用HTML5 appCache和Django动态页面

问题是,当appCache用于页面(更像是一个RESTFUL url)时,它会自动下载此页面,但似乎没有办法强制此页面上有内容更新时无效此页面而无需更改服务器端的清单文件。

我的问题是,这是否意味着我不能在任何动态页面上使用appcache?如果不是,我该怎么做?

回答

1

HTML5中的清单文件无意处理动态更改的资源。它的目的是在应用程序范围内使用常用和常量资源:CSS,JavaScript和界面元素(图标,按钮,徽标,背景等)构成应用程序的外观和感觉(即使未在当前使用视图)。这允许通用资源被预取和缓存,以便每个视图只需要加载它的个性化内容。

1

我认为我们有一个类似的问题:

My HTML5 Application Cache Manifest is caching everything

我还没有找到最终的答案,但是从我学到的东西似乎清单并不意味着要在每个页面上设置。我再次不确定,但这是我遇到的黑客。我有一个页面,例如具有

<html manifest="manifest.appcache"> 

我才知道,这没有这个页面不会被添加到缓存但是他们仍然会继续使用应用程序缓存,如果在同一个域manifest.html。 Therfore如果包括manifest.html具有此在everypage的iframe一个普通的HTML页面,将不缓存像Chrome将无法再输出页面:

Adding master entry to Application Cache with manifest 

但如果你去到网络选项卡,你会看到,它是用在HTML标记缓存

所以基本上,而不是把这个正文的开头清单属性:temporary_manifest_hack.html的 <iframe id='manifest_iframe_hack' style='display: none;' src='temporary_manifest_hack.html'>

内容:

<!DOCTYPE HTML> 
<html lang="en" id="sexxymofo" class="no-js" manifest="manifest.appcache"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Hack 4 Manifest</title> 
    </head> 
    <body></body> 
</html> 
0现在

因为你没有指定具体的问题,我担心你可能有一个问题,一个有效的清单,记住没有在清单没有通配符,使用这个网址来验证: http://manifest-validator.com/validate

的最简单的错误将导致该清单是无效的,没有应用程序缓存将被使用,使用Chrome 调试作为控制台将记录过程的每一步,也看到这个网址在Chrome: chrome://appcache-internals/

再看看我在上面的答案中了解更多的问题