内容已缓存

时间:2009-08-11 15:07:25

标签: javascript caching refresh

我正在为项目创建一个门户页面,并且包含的​​div每1000秒刷新一次。

我遇到的问题是,所引入的内容总是被缓存,因此刷新无效,用户必须进行硬刷新。

这仅发生在Internet Explorer

这是我用来刷新和加载div的javascript代码:

var auto_refresh = setInterval(
    function () {
        $('#news').load('apps/news.php').fadeIn("slow");
    }, 1000);

正如您所看到的,数据包含在PHP文件中。

news.php的内容:

<dl class="news">
  <dt>09/01/08</dt>
   <dd>
    <a href="#"><img src="/images/news1.jpg" alt="News image 1" /></a>
     <p><a href="#">Opal network services resume - Bada Bing!</a></p>
   </dd>
  <dt>07/01/08</dt>
   <dd>
    <a href="#"><img src="/images/news3.jpg" alt="News image 3" /></a>
     <p><a href="#">Anglia Contemporary Theatre - "Some news-pschitt!"</a></p>
   </dd>
  <dt>07/01/08</dt>
   <dd>
    <a href="#"><img src="/images/news4.jpg" alt="News image 4" /></a>
     <p><a href="#">ALSS Faculty Research Seminar - Novel Plots: Narrative in Nineteenth-Century Verbal and Visual Fictions</a></p>
   </dd>
  </dl>

如何设置它以便不缓存数据?

由于

2 个答案:

答案 0 :(得分:6)

将当前时间添加到网址末尾的查询中:

var auto_refresh = setInterval(
  function () {
  $('#news').load('apps/news.php?random='+(new Date()).getTime()).fadeIn("slow");
  }, 1000);

答案 1 :(得分:1)

将no-cache添加到news.php的缓存指令中,或者使用短缓存(例如500秒)来提高&lt;的性能。 1000s刷新。根据您的需要调整缓存策略。

来自http://www.php.net/manual/en/function.header.php的示例:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>