2015-08-17 163 views
-3

我有兩個包含文件(php),其輸入字段需要通過setInterval進行更新。他們都會顯示相同的輸入值。使用setInterval多次調用函數

我的問題是,在某些情況下,我將只包括一個文件,有時我會包括他們兩個。 我不想對兩個包含文件都進行ajax調用,因爲我會得到相同的數據兩次。我也不想在一個文件上有一個調用,因爲我不知道哪個文件總是會加載。

我試着有一個不同的文件(可以說core.js),將有自己的setInterval ajax函數,我會從每個包含文件調用此函數。然後(我認爲它會起作用),當一個文件調用ajax時,它會終止間隔並重新開始。但我希望函數能夠保持第一次調用的成功函數。

這有道理嗎?如果不是,我很樂意聽到其他選項。

enter image description here

+1

爲什麼不把js包含在父頁面中? – Jai

+0

,因爲我想在我的所有頁面上。 – user2587454

+1

所以如果js在父頁面上,那麼它也會爲所有其他包含的頁面執行。 – Jai

回答

0

你應該在一個單獨的文件中聲明你的功能,以防止代碼重複。在同一文件中聲明在全球範圍內一個變量,然後在每個包含文件的像做以下(假設你的全局變量的定時器)

// Start timer 
if (typeof timer === 'undefined') { 
    timer = setInterval(funcName, 1000); 
} 

,將檢查,看看是否計時器已經被聲明,並設置間隔,如果它沒有。