Ajax重新加载DIV,立即执行

时间:2014-03-18 10:06:08

标签: ajax html reload

我有以下脚本,它每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>

1 个答案:

答案 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);
});