我有一个图表,该图表每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函数,并使用自定义参数保存callbacktimeout函数引用,而不要使用多个函数定义,以避免冗余代码。

09-27 21:53