簡體   English   中英

將活動元素狀態綁定到jQuery AJAX請求

[英]Binding live element status to jquery AJAX request

您好我想綁定一個元素(或變量):

$("#progressbar").val(55);

到AJAX請求結果:

$.get("/checkstatus/",...);
// this return the status (a number between 1 and 100 %).

並且必須連續調用它以實時更改進度條值。

我試過了:

$("#progressbar").on() 
... 
$("#progressbar").live()
...

但是,“連續檢查”某事並綁定到元素的事件是什么? 諸如“單擊”,“鍵控”等事件不是時間事件。

我也嘗試過:

setTimeout(...) 

在每X秒觸發一次請求,但我不知道這是否是最好的方法。

如何使用AJAX進行連續檢查並綁定到元素或變量?

問候:

您可以使用setInterval Javascript函數,該函數以給定的毫秒率定期執行回調。 這種技術稱為輪詢

但是,盡管很簡單,但它並不是很有效,特別是在您負擔很重的情況下。 如果性能很重要,那么還有其他更有效的技術。 如果您有興趣,請搜索長輪詢Web套接字SignalR (如果有.NET后端)。

var handle = setInterval(function() {
  $.get("/checkstatus/",...)
   .done(function(result) { 
      $("#progressbar").val(result.value); 
      if (result.value >= 100) {
        clearInterval(handle); // stop the cycle
      }      
    });
}, 500); // execute in every 500ms

請注意,上面的代碼未經測試,不包含任何異常處理和驗證,僅提及一個簡單的示例。 不要“復制粘貼”它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM