避免“auto_refresh = setInterval”的初始加载

时间:2012-02-06 12:51:40

标签: ajax jquery

如果您看到下面的代码“left-profile-load.php”将每9秒加载一次,但问题是我需要等待9秒才能进行初始加载。

那么如何避免这个问题(初始加载)?

<script>
var auto_refresh = setInterval(
function()
{
$.ajaxSetup({ cache: false });
$('#preview_project').fadeOut("slow").load('left-profile-load.php').fadeIn("slow");
}, 9000);
</script>

2 个答案:

答案 0 :(得分:2)

您可以定义一个函数:

$.ajaxSetup({ cache: false });
var load = function() {
    $('#preview_project').fadeOut("slow").load('left-profile-load.php').fadeIn("slow");    
};

然后:

var auto_refresh = window.setInterval(load, 9000);
load();

或简单地使用setTimeout匿名函数:

(function() {
    $('#preview_project').fadeOut('slow').load('left-profile-load.php').fadeIn('slow');
    window.setTimeout(arguments.callee, 9000);
})();

注意这里如何使用arguments.callee来获取对包含匿名函数的引用,以实现递归调用。

答案 1 :(得分:1)

在文档准备就绪时加载left-profile-load.php

$(function(){
      $('#preview_project').fadeOut("slow").load('left-profile-load.php').fadeIn("slow")
})