0

我正在为一个项目制作一个门户页面,其中包含的 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>

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

谢谢

4

2 回答 2

6

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

var auto_refresh = setInterval(
  function () {
  $('#news').load('apps/news.php?random='+(new Date()).getTime()).fadeIn("slow");
  }, 1000);
于 2009-08-11T15:10:13.590 回答
1

将 no-cache 添加到 news.php 的缓存指令中,或者设置一个短缓存 'say 500 sec' 以提高 < 1000 秒刷新的性能。根据您的需要调整缓存策略。

来自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
?>
于 2009-08-11T15:27:35.023 回答