我有一个图表,该图表每5秒更新一次,以显示进入建筑物的用户数量,并且用户可以选择每个楼层有多少用户。这也会每5秒更新一次
下面是我让用户进入建筑物的代码
var interval = 5000;
function get_Users() {
var users= $.ajax({
type: 'POST',
url: '<?php echo base_url('index.php')?>/building/feed',
data: $(this).serialize(),
success: function (users) {
$('.current').html(users);
},
complete: function (users){
setTimeout(get_Users, interval);
}
});
}
setTimeout(doFeed, interval);
下面是用来吸引各个楼层的用户的
$(document).on('change','.floor',function(){
$.ajax({
url: 'floor/chart',
type: 'post',
data: asset,
dataType: 'json',
success: function (users) {
$(".current").html(users.floor);
},
});
});
我需要做的是一旦成功更改它,每5秒发布并获取图表值。
如何才能做到这一点?任何帮助将不胜感激。
最佳答案
您可以通过为change
处理程序创建一个命名函数并在第一个函数完成后触发timeout
函数来完成此操作,就像您在代码中为其他函数所做的那样。
$(document).on('change','.floor',changeFloorHandler);
function changeFloorHandler() {
$.ajax({
url: 'floor/chart',
type: 'post',
data: asset,
dataType: 'json',
success: function (users) {
$(".current").html(users.floor);
},
complete: function (users){
setTimeout(changeFloorHandler, interval);
}
});
}
注意:我建议您在代码中使用通用的
ajax
函数,并使用自定义参数保存callback
的timeout
函数引用,而不要使用多个函数定义,以避免冗余代码。