2016-06-22 29 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