将活动元素状态绑定到 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()
...
但是,"check continuously" 某物并绑定到元素的事件是什么?。 'click'、'keyup'、...等事件不是时间事件。
我也试过:
setTimeout(...)
每 X 秒触发一个请求,但我不知道这是否是最好的方法。
如何使用 AJAX 连续检查并绑定到元素或变量?
问候:
您可以使用 setInterval
Javascript 函数以给定的毫秒速率定期执行回调。这种技术称为 轮询 。
然而,尽管它很简单,但效果不是很好,尤其是当你的负载很重时。如果性能很重要,还有其他更有效的技术。如果您有兴趣,请搜索 long polling、web sockets、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
请注意,上面的代码未经测试,不包含任何异常处理和验证,仅作为一个快速示例。不要"copy-paste"它。
你好我想绑定一个元素(或变量):
$("#progressbar").val(55);
至AJAX请求结果:
$.get("/checkstatus/",...);
// this return the status (a number between 1 and 100 %).
而且必须连续调用,才能实时改变进度条的值。
我试过:
$("#progressbar").on()
...
$("#progressbar").live()
...
但是,"check continuously" 某物并绑定到元素的事件是什么?。 'click'、'keyup'、...等事件不是时间事件。
我也试过:
setTimeout(...)
每 X 秒触发一个请求,但我不知道这是否是最好的方法。
如何使用 AJAX 连续检查并绑定到元素或变量?
问候:
您可以使用 setInterval
Javascript 函数以给定的毫秒速率定期执行回调。这种技术称为 轮询 。
然而,尽管它很简单,但效果不是很好,尤其是当你的负载很重时。如果性能很重要,还有其他更有效的技术。如果您有兴趣,请搜索 long polling、web sockets、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
请注意,上面的代码未经测试,不包含任何异常处理和验证,仅作为一个快速示例。不要"copy-paste"它。