【问题标题】:Hard refresh website design硬刷新网站设计
【发布时间】:2011-07-28 05:15:52
【问题描述】:

我正在开发一个网站,但每次我做一些小的更改时,我都必须执行一次硬刷新才能看到更改。

这里明显的问题是用户可能永远不会进行硬刷新,因此他/她不会立即看到效果。另外,有时当我更改样式表时, 如果不进行硬刷新,网站看起来就像一团糟。

我能做什么?

【问题讨论】:

    标签: page-refresh


    【解决方案1】:

    您可以通过添加缓存控制元标记来强制页面不缓存:

    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    

    您还可以通过添加版本获取参数来防止缓存样式表:

    <link rel="stylesheet" href="mystyles.css?v=1" type="text/css" />
    

    增加版本号以强制加载新版本。

    【讨论】:

    • 当然这会减慢您的页面速度,因为每次都会从服务器获取所有内容,因此最终应该删除元标记。
    • 视情况而定。如果这是一个显示用户个性化内容(登录名、收件箱消息等)的动态网站,则缓存标头是强制性的。
    • +1 以获得可行的解决方案,但是...如果 OP 可以控制实际的 HTTP 标头,那么设置这些标头而不是依赖于 &lt;meta&gt; 标签会更干净.此外,使用“真实的东西”(实际的标题)也适用于样式表和其他非 HTML 资源(JS、imgs 等),没有丑陋的v 参数。
    • 谢谢,实际上我不想阻止缓存,但我尝试在每次页面加载时重新加载样式表,它就像一个魅力。这是它的样子:code type="text/css" media="screen" />code
    • 如果您对服务器有足够的控制权,请尝试确保它正确处理If-Modified-Since(查找)标头,并且您的文件具有良好的时间戳。该标头存在的唯一目的是满足您的要求:启用缓存,但如果资源已被修改,请确保再次提供资源。
    【解决方案2】:

    那么,您的设计更改(外部样式表?)没有立即显示?

    这可能与浏览器缓存有关。 您的文件已被缓存,这是一件好事。如果要使缓存无效,可以向外部文件添加一个参数,如下所示:

    <link rel="stylesheet" type="text/css" href="http://sstatic.net/stackoverflow/all.css**?v=f023310c4326**">
    

    这个很棒的软件的开发者知道这一切。

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      相关资源
      最近更新 更多