我一直在寻找最佳解决方案的jquery .load问题的影响ie7和8,我有以下代码块,这是从外部jsp页面加载我的内容没有问题,除了所有浏览器的bug 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上加载内容
首先,如果您想让内容淡出,那么它首先必须是隐藏的。如果包含的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);
});