繁体   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