【问题标题】:Use HTML5 appCache with Django dynamic page将 HTML5 appCache 与 Django 动态页面一起使用
【发布时间】:2011-06-05 02:24:33
【问题描述】:

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

问题是当appCache用于一个页面(更像是一个RESTFUL url)时,会自动下载这个页面,但是当这个页面有内容更新的时候好像没有办法强制使这个页面失效在服务器端更改清单文件。

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

【问题讨论】:

    标签: django html


    【解决方案1】:

    我认为我们也有类似的问题:

    My HTML5 Application Cache Manifest is caching everything

    我还没有找到最终的答案,但据我所知,清单似乎并不是要在每个页面上设置。我再次不确定,但这是我遇到的一个黑客。我有一个页面,例如 manifest.html 有

    <html manifest="manifest.appcache"> 
    

    我了解到没有此功能的页面不会被添加到缓存中,但是如果它们位于同一域中,它们仍将继续使用应用程序缓存。因此,如果您包含 manifest.html 一个普通的 html 页面,该页面在每个页面的 iframe 中都有它,它将不会像 chrome 一样缓存该页面将不再输出:

    Adding master entry to Application Cache with manifest 
    

    但是如果你去网络选项卡你会看到它正在使用缓存

    所以基本上不是 html 标签上的 manifest 属性,而是把它放在正文的开头: &lt;iframe id='manifest_iframe_hack' style='display: none;' src='temporary_manifest_hack.html'&gt;

    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>
    

    现在,由于您没有具体说明您的问题,我担心您可能对有效清单有疑问,请记住清单中没有通配符,请使用此 url 进行验证: http://manifest-validator.com/validate

    最简单的错误会导致manifest无效并且不会使用appcache,使用chrome 用于调试,因为控制台将记录该过程的每一步,还可以在 chrome 中查看此 url: chrome://appcache-internals/

    再次查看上面答案中的问题以了解更多信息

    【讨论】:

      【解决方案2】:

      HTML5 中的清单文件并非旨在处理动态变化的资源。它的目的是在应用程序范围内使用常见且不变的资产:构成应用程序外观和感觉的 CSS、JavaScript 和界面元素(图标、按钮、徽标、背景等)(即使当前未使用)看法)。这允许预取和缓存公共资源,因此每个视图只需加载其个性化的内容。

      【讨论】:

        猜你喜欢
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-06
        • 2015-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-02
        相关资源
        最近更新 更多