我如何在页面加载的第一件事就是调用setTimeout,然后等待五秒钟

How can I make this setTimeout call first thing on page load THEN wait five seconds?

本文关键字:setTimeout 调用 然后 等待 五秒 一件 加载      更新时间:2023-09-26

我有这个方法:

$(document).ready(function(){ 
    var rootPath = getRootPartofPathName();
    (function poll() {
        setTimeout(function () {
            $.ajax({
                type: 'GET',
                url: rootPath + '/data/notifications?method=getNotificationSizes',
                success: function (data) {
                    handleNotifications(data); 
                },
                complete: poll
            });
        }, 5000);
    })();
}); 

但它只在页面加载后5秒调用。如何让它在第一页加载时开始轮询?

在回调中创建timeout,也不需要自执行函数,然后在页面加载时简单地调用poll()

function poll() {
    $.ajax({
        type: 'GET',
        url: rootPath + '/data/notifications?method=getNotificationSizes',
        success: function (data) {
            handleNotifications(data); 
            setTimeout(poll, 5000);
        },
        complete: function() {
        }
    });
}
poll();