.load()、fadeOut()和fadeIn()在IE8中无法正常工作。

4

在发布之前,我已经搜索过了。 我的网站上有一个页面,在该页面上需要每隔X秒刷新数据。 我正在使用

var s= setInterval(function()
{

    $('#responsecontainer').fadeOut("slow").load('table_data.php?pair_id=<?echo $pair_id?>').fadeIn("slow");

}, 5000);

var s= setInterval(function()
{

    $('#responsecontainer2').fadeOut("fast").load('last_modifed.php').fadeIn("fast");

}, 5000);

`

它在火狐和谷歌浏览器中运行良好,但在IE8中无法正常工作。我不介意每次都加载数据,但它甚至连这个都没有做到,我尝试写了


$('#responsecontainer').load('table_data.php');

即使我更改了文件,它仍然从旧数据中加载。

页面为此处(顺便说一下,这是希伯来语)有什么帮助吗?


如果它正在加载旧数据,问题可能是浏览器缓存。在第一个.load()调用之前尝试$.ajaxSetup({cache: false})。如果这样修复了问题,您应该查看修复您发送的HTTP响应头,特别是与缓存相关的头(Cache-Control, Pragma, ETag, Last-Modified, Expires)。 - Matt Ball
2个回答

1
您的 table_data.php 页面返回了 304 Not Modified,这意味着您已经设置了缓存。请向该文件添加头信息以防止缓存,然后它应该可以正常工作。

大家好,谢谢,它起作用了 - 数据现在已经刷新。但是在浏览器中淡入淡出仍然不起作用。相反,在包含Flash的下面的div中会出现闪烁(#history graph,在每个浏览器中都会发生)。 - devmonster

1

确保页面没有被缓存。一种常见的方法是使用唯一的时间戳或类似的值。

'table_data.php?pair_id=<?echo $pair_id?>&no-cache=' + (new Date()).getTime()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接