1

当我最初加载页面时,我需要在 30 秒内调用一个函数。此后应在 60 秒内自动调用它。

我所做的是,

  <html>
    <head>
    </head>
    <body>
    <script>
        setTimeout('ajaxload()',30000);
        setInterval('ajaxload()',60000);
        function ajaxload()
        {
         //code
        }
    </script>

    </body>
    </html>

但是我认为该函数在不规则的时间被调用。我做得对吗?如有错误欢迎分享....

4

4 回答 4

6

不要传递字符串 .. 传递函数名称/声明本身:

setTimeout(function () {
   ajaxload();
   setInterval(ajaxload, 60000);
}, 30000);
于 2013-01-25T05:18:10.943 回答
2

您使用它有点不正确。如果第一个是 30 秒,然后是 60 秒,你应该按顺序进行。

setTimeout(startAjaxLoad,30000);

function ajaxload()
{
     //code
}

function startAjaxLoad() 
{
    ajaxload();
    setInterval(ajaxload,60000);
}
于 2013-01-25T05:18:26.643 回答
0

改成

setTimeout(function(){ajaxload()},30000);
setInterval(function(){ajaxload()},60000);
function ajaxload()
        {
         //code
        }
于 2013-01-25T05:19:37.030 回答
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);
于 2013-01-25T05:34:57.403 回答