我有以下脚本,它每3秒重新加载论坛主题,但我也希望它在页面加载后立即加载,以便第一次没有延迟。第一次加载页面需要3秒才能显示主题。
任何人都可以帮我吗?
提前致谢。
<script type="text/javascript">
window.onload = function(){
function foo()
{
$('#forum').load('forum.php').fadeIn("slow");
} // refresh every 10000 milliseconds
setInterval(foo, 3000);
}
</script>
答案 0 :(得分:0)
这是因为您正在等待.onload
事件,当浏览器下载了所有资源/资产(如图像)时会触发此事件 - 这种延迟对于臃肿或资源密集的网站来说非常重要,这将产生大量的HTTP请求,并且不会在您希望的时候触发onload
事件。
解决方案?你应该在DOM准备好的情况下激活foo
:
$(function() {
var foo = function() {
$('#forum').load('forum.php').fadeIn("slow");
}
// Will execute on DOM ready
foo();
setInterval(foo, 3000);
});
请注意,$(function() {...})
相当于jQuery中的$(document).ready(function() {...})
。
如果您希望在加载所有资源时强制点火foo()
,只需再次点击:
$(function() {
var foo = function() {
$('#forum').load('forum.php').fadeIn("slow");
}
// Will execute on DOM ready
foo();
setInterval(foo, 3000);
// Also execute on window load
$(window).load(foo);
});