2016-06-22 33 views
-2

新的函数:在使用setInterval发行()函数没有被调用

<script> 
     $.ajaxSetup({ 
      cache : false 
     }); 

     function getMessage() { 
      $.get("php/getMessage.php?q=1" + "&" + Date.now(), function(data) { 
       $("#typed").typed({ 
        strings : [data], 
        typeSpeed : 30, 
        contentType : 'html', 
       }); 
      }); 
     }; 
     setInterval(getMessage, 5000); 

</script> 

以前的版本:

function getMessage() { 
    $.get("php/getMessage.php?q=1", function(data) { 
     $("#typed").typed({ 
      strings : [data], 
      typeSpeed : 30, 
      contentType : 'html', 
     }); 
    }); 
}; 
setInterval(getMessage(), 5000); 

因此,这是我的问题似乎在于。

最初,数据完美地从数据库(通过getMessage.php)中提取并按预期写入页面。

我确定它可能是非常简单的事情,但我完全难以理解,为什么这并不是每5秒钟调用一次并从表格中提取一个更新值。

我很感激帮助!

+0

你可以在你的文章中添加输入函数吗? – Aidan

+0

你能详细说明你需要什么信息吗?帖子的顶部是正在执行的功能,然后被召回。 – Stu

+0

是的,您可以在该函数中调用一个名为typed()的函数,您是否也可以发布该函数。 – Aidan

回答

3
setInterval(getMessage(), 5000); 

您正在调用该函数,然后将返回的值传递给setInterval。你真正想要做的是传递功能setInterval()

setInterval(getMessage, 5000); 
+0

我已经试过了,它似乎为我实现的唯一的事情是延迟初始输出5秒。新数据不会从数据库中提取。 – Stu

+0

答案很好。只需关闭ajax的缓存设置或者在url中添加一个随机参数即可。 –

+0

上面还是没有运气,我现在也试着在getMessage函数中附加一个延迟函数,这个函数似乎没有实现任何的结果 – Stu

-2

与tkausl的答案是什么,你也有叫

setInterval(function(){getMessage()}, 5000); 

然而,较长的选项,以便它归结到个人偏爱。

+0

不幸的是,这和上面的完全一样,延迟了初始调用5秒,然后不记得该功能。 – Stu