我最初加载页面时需要在30秒内调用一个函数。此后应该在60秒内自动调用。
我做的是,
<html>
<head>
</head>
<body>
<script>
setTimeout('ajaxload()',30000);
setInterval('ajaxload()',60000);
function ajaxload()
{
//code
}
</script>
</body>
</html>
但我想这个功能是在不规则的时间调用的。我做得对吗?如果有任何错误,请分享......
答案 0 :(得分:6)
不传递字符串..传递函数名称/声明本身:
setTimeout(function () {
ajaxload();
setInterval(ajaxload, 60000);
}, 30000);
答案 1 :(得分:2)
您使用它有点不正确。如果第一个是30秒,然后是60秒,你应该按顺序进行。
setTimeout(startAjaxLoad,30000);
function ajaxload()
{
//code
}
function startAjaxLoad()
{
ajaxload();
setInterval(ajaxload,60000);
}
答案 2 :(得分:0)
更改为
setTimeout(function(){ajaxload()},30000);
setInterval(function(){ajaxload()},60000);
function ajaxload()
{
//code
}
答案 3 :(得分:0)
如果您要继续调用AJAX方法,等待它先完成然后再次使用setTimeout()
,我会考虑更整洁一些。
function ajaxload()
{
$.ajax({
// AJAX Settings.
// ...
complete: function()
{
// Call .ajaxload() 60 seconds from the completion of this request.
setTimeout(ajaxload, 60000);
}
});
}
// Initial call.
setTimeout(ajaxload, 30000);