2013-10-31 87 views
0

我有一個vb.net aspx頁面加載在document.ready上的模態div。使ajax調用與setInterval多次運行

然後我有一個函數,基本上ajax調用一個返回日期/時間的aspx頁面。

AJAX調用然後更新的日期和時間

以上所有的作品在最初的頁面加載模態的div層一個div。

但我希望它每5秒鐘左右執行一次該功能 - 但它只會執行一次。

所以我想在總結... - 頁面加載 - 的document.ready顯示模式DIV(這工作) - 那麼setInterval的調用AJAX功能到我的網頁返回date.time(此作品1次)

  • 然後在模態的div被顯示,並同時在頁面上,setInterval的持續做上述行(這不起作用)

沒有我給任何代碼(假設我代碼現在是廢話)大聲笑可以做到這一點?基本上,我希望頁面通過調用ajax函數每5秒簡單顯示一次更新div innetText的日期/時間。

然後,我將擴大,如果我們能夠得到它的工作:)

再次任何幫助非常感謝:)

乾杯

UPDATE 2013年4月11日10:04

我剛剛嘗試將setInterval調用放在文檔就緒區塊中 - 甚至向函數添加了一個警報,以查看它是否實際調用它多次 - 並且它不一旦。

這是代碼。

所以在腳本標籤開始我

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     showPayWait(); 
     setInterval(processPayment(), 5000); 
    });   

    /* Function to Process Payment via AJAX calls so we can update the modal div */ 
    function processPayment() { 

     // show modal div first 
     var OrderIDResponse = ""; 
     var lngOrderID = ""; 
     UpdateMessage('Assigning an OrderID'); 

     // Get Ajax Response into variable. 
     OrderIDResponse = getOrderID(); 

     // Parse it to the actual text we need i.e. the orderid 
     lngOrderID = OrderIDResponse['responseText']; 

     if (!lngOrderID == "") { 
      UpdateMessage("OrderID Assigned: " + lngOrderID); 

     } 
     else { 
      UpdateMessage('Unable to assign an OrderID ' + lngOrderID); 
     } 


    } 

    // -- Generic function to update the divInfo Element 
    function UpdateMessage(msg) { 
     document.getElementById("divInfo").innerText = msg; 
    } 
</script> 

只是覺得我應該指出的是,這裏的代碼是頁面,是一個母版

母版頁有內容頁只是鏈接到最新的jQuery包括。

再次感謝您的回覆 - 並一如既往地大力幫助。

乾杯

+0

好了,解決的辦法是'setTimeout'或'setInterval'。沒有看到你的代碼,我不認爲任何人都能夠幫助搞清楚你做錯了什麼。 –

+0

你好 - 謝謝你的回覆 - 我已經更新了包括這段代碼在內的原始問題 – DogsoldierUK

回答

0

得到它與您的答覆和從另一個線程的答案的組合工作。

我正在從setInterval WITH括號()調用函數,而不僅僅是函數引用。

此外,與文檔準備=結果!!!!

我從另一個線程指的答案是JS setInterval executes only once

0

要麼做這樣的:

function update() { 
    //update logic belongs here 

    setTimeout(update, 5000 /*5secs*/); 
} 

setTimeout(update, 5000 /*5secs*/); 

或像這樣:

function update() { 
    //update logic belongs here 
} 

setInterval(update, 5000 /*5secs*/); 
+0

你好 - 感謝你的回覆 - 我已經更新了包括這段代碼在內的原始問題:) – DogsoldierUK

0

您需要的文件準備功能中使用setInterval,像這樣:

$(document).ready(function() { 
    setInterval(doAjax, 5000); 
}); 

function doAjax() { 
    // Call server-side resource here via AJAX 
} 

注意:如果你想要其他的東西觸發5秒的間隔,那麼把setInterval(doAjax, 5000);調用放在你想要的任何選擇器或單擊事件處理程序中。它顯然不需要用jQuery來完成,但這是我能想到的最快的例子。

+0

你好 - 感謝你的回覆 - 我已經更新了包括代碼在內的原始問題 – DogsoldierUK