2015-04-04 72 views
0

我在我的ASP .NET應用程序中使用javascript的$.get()函數,從另一個頁面獲取一些數據,並將此收到的數據設置爲我的標籤文本之一。如何讓setInterval無需等待它來獲取結果?

我也將此設置爲setInterval()函數來連續檢查新數據。但是問題是:每當我加載一個新頁面時,該腳本調用$.get()函數,並且3 seconds沒有任何內容,我發現從客戶端角度來看並不令人滿意。

是否有某種方式可以在手動設置標籤的值之前,然後在後臺自動刷新以檢查新值?

這是我寫的劇本:

<script type="text/javascript"> 

     function myFunction() { 

      $.get("AjaxServicesNoty.aspx", function (data) { 

       var recievedCount = data; 
       var existingCount = $("lblEventCount").text(); 


       if (existingCount == "") { 
        $(".lblEventCount").html(recievedCount); 
        $(".lblAcceptedCount").html(recievedCount); 

       } 

       else if (parseInt(recievedCount) > parseInt(existingCount)) { 
        $(".lblEventCount").html(recievedCount); 
        $(".lblAcceptedCount").html(recievedCount); 

       } 
       else { 
        $(".lblEventCount").html(existingCount); 
        $(".lblAcceptedCount").html(existingCount); 
       } 

      }); 

       } 

      setInterval(myFunction,3000); 
     </script> 
+1

只需在加載頁面時調用myFunction()。函數開始之前的 – 2015-04-04 02:39:10

+0

?我應該打電話嗎? – 2015-04-04 02:39:58

回答

0

如果你想在頁面加載後執行的功能,你只需要調用它是這樣的:

$(document).ready(function() { 
    myFunction(); 
}); 

它將只能執行一次,但請注意,如果它們以異步方式執行(它們是默認值),它可能會與setInterval調用重疊。

+0

只需在腳本的第一行調用函數myFunction(),而不是在$(document).ready()中調用它,會導致任何區別? – 2015-04-04 02:52:39

+2

是的,因爲您在獲得ajax響應後正在更新頁面(DOM),因此需要加載頁面。理想情況下,頁面加載將比ajax調用更快,但要安全地調用文檔就緒的函數。 – 2015-04-04 03:00:05

+0

Okkay ..謝謝@The_Black_Smurf! – 2015-04-04 03:00:57