我一直在搜索jquery .load问题的最佳解决方案,它影响ie7和8,我有以下代码块,它从外部jsp页面加载我的内容,除了所有浏览器都没有问题曾经有过IE7和8。
$(document).ready(function(){
$.ajaxSetup({ cache: false });
setInterval(function () {
$('#myDiv').load('test.jsp').fadeIn("slow");
}, 10000);
});
我找到了许多解决方法,例如设置新日期:
$('#myDiv').load('test.jsp',{noncache: new Date().getTime()},function(){..}).fadeIn("slow");
但是对我来说不起作用,但内容不会在IE7和8上加载。
答案 0 :(得分:0)
首先,如果你想要内容淡入,那么它必须首先被隐藏。如果包含的div已经可见,则无法淡入。
其次,有些版本的IE对缓存有点热心,你可以通过URL中的唯一参数来打败缓存(就像你尝试过的那样)。
第三,.load()
不是动画,所以它不使用动画队列,所以如果你想在加载完成后做某事,那么你需要在完成函数中做。你有最后两个的部分,但没有把它们放在一起。
你可以将所有这三个结合起来:
$(document).ready(function(){
var myDiv = $('#myDiv');
setInterval(function () {
myDiv.fadeOut('slow', function() {
var now = new Date().getTime();
myDiv.load('test.jsp?unique=' + now, function() {
myDiv.fadeIn('slow');
});
});
}, 10000);
});