javascript - 在更改事件中每 5 秒执行一次 jquery

标签 javascript jquery

我有一个图表,每 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 函数引用以实现超时 而不是多个函数定义以避免冗余代码。

关于javascript - 在更改事件中每 5 秒执行一次 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329204/

相关文章:

javascript - jQuery 并仅在每 200 次滚动时获取滚动位置

javascript - jQuery $.ajax成功一定是回调函数?

javascript - jQuery-UI 可排序/可删除

javascript - 通过更新 Prop 更新输入值

javascript - "respond_with_navigational"是如何工作的?

javascript - 通过 html 按钮执行后退按钮发生的操作

javascript - 将忽略时区偏移的日期字符串

javascript - IPython 笔记本打开文件对话框(检索完整路径)

php - 如果 WooCommerce 3+ 中的购物车页面上的购物车已清空,则重定向到商店

javascript - 蛇游戏尾部的正确位置