我正在尝试将一个由Jquery加载到div中的页面。 它应该偶尔刷新一次。
现在刷新工作。 但是,初始页面加载不会。
我试图确保编写了正确的代码。 有人能指出我正确的方向吗?
我的代码:
<script type="text/javascript">
jQuery(document).ready(function() {
$.ajaxSetup({
cache: false
}); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
setInterval(function() {
$('#WebsiteImages').load('/images/?SetAjaxCall=loadimages');
}, 2000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
/// **** DEFAULT LOADING
//$('#WebsiteImages').html('Some set text :-)');
$('#WebsiteImages').load('/images/?SetAjaxCall=loadimages');
});
</script>
div:
<div id="WebsiteImages"></div>
奇怪的是,取消注释:
$('#WebsiteImages').html('Some set text :-)');
那可行。
修改 我尝试了以下代码:
结果是一样的。 (*尝试将警报设置为测试并运行代码, - &gt;我收到警报,因此没有解析错误*)
$(window).load(function() {
$('#WebsiteImages').load('images/?SetAjaxCall=loadimages');
});
我还尝试创建一个在页面加载后立即加载的函数:
function LoadImagePage(){
$('#WebsiteImages').load(\'/images/?SetAjaxCall=loadimages');
}
还添加了警报以检查是否已加载。它运行。然而无济于事。
ANSWER 通过: lshettyl 以下代码WORKED !!!
$(function() {
$.ajaxSetup({
cache: false
});
//IIFE
(function loadStuff() {
$('#WebsiteImages').load('/images/?SetAjaxCall=loadimages', function() {
setTimeout(loadStuff, 2000);
});
}());
});
答案 0 :(得分:3)
正如我在评论中所说,拥有IIFE
而不是重复代码会更干净。我还建议在加载回调中使用setTimeout
而不是setInterval
。以下是我所说的一个例子。请记住,您已经拥有的代码应该可以工作,除非这是第一次调用中的严重延迟,并且setInterval已经启动。
$(function() {
$.ajaxSetup({
cache: false
});
//IIFE
(function loadStuff() {
$('#WebsiteImages').load('/images/?SetAjaxCall=loadimages', function() {
setTimeout(loadStuff, 2000);
});
}());
});
以下是同一行的a demo。