在JavaScript中使用setInterval而不使用内联的匿名函数

我想要实现的是,最初将加载数据,然后使用相同的功能每十分钟更新一次.

考虑以下代码

var updateNamespace = (function() {
    var object = '#updates',load = 'loader';

    return {
        update: function() {
            $(object).addClass(load).load('update.PHP',function(reponse,status,xhr) {
                if (status == 'error') {
                    $(this).html('<li>Sorry but there was an error in loading the news &amp; updates.</li>');
                }
                $(this).removeClass(load);
            }); 
        }
    }
})();

setInterval(updateNamespace.update(),600000);

我收到此错误

useless setInterval call (missing quotes around argument?)

我怎样才能解决这个问题?

写这个或使用setInterval函数有什么更好,更优雅的方法

谢谢.

解决方法

你需要使用:
setInterval(updateNamespace.update,600000);

(注意删除的invocation()运算符.)

您编写的代码调用setInterval时实际上会调用updateNamespace.update.因此,

setInterval(updateNamespace.update(),600000);

评估为

setInterval(undefined,600000);

您希望将setInterval传递给函数,而不是调用它的结果.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...