javascript - 我怎样才能在页面加载时首先调用 setTimeout 然后等待五秒钟?

标签 javascript jquery ajax settimeout polling

我有这个方法:

$(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();

关于javascript - 我怎样才能在页面加载时首先调用 setTimeout 然后等待五秒钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529295/

相关文章:

javascript - 如何按 ajax 调用从服务器返回的日期对对象列表进行排序

javascript - 发送此 AJAX Post 数据的正确内容类型

javascript - 我在 Emberjs 中的虚假案例陈述正在爆炸。正确的方法是什么?

javascript - Vue 加载覆盖组件在 nuxt2 .0 中不起作用

javascript - 如何删除动态创建的 div?

javascript - 每 n 秒刷新部分结果为 "Stack Level Too Deep"

javascript - 确认 href 链接

javascript - AngularJs - $http.get() 中的 Array.push() 产生有缺陷的数组

jquery - 从选定的 Bootstrap 下拉选项中获取值

jquery - 如何在 angular 2 中使用 jQuery 和 javascript