首页 > 解决方案 > 如何在引导模式关闭时停止递归 Ajax 轮询?

问题描述

当特定的引导模式打开时,我正在调用 ajax 轮询函数,它运行良好,但是当我强制关闭 BS 模式时,轮询函数应该停止,但它会在后台继续触发。

我不知道我做错了什么。使用引导程序 4。

这是我的js脚本,

var run = function() {

    $.ajax({
        url: ajaxurl,
        dataType: 'json',
        type: 'GET',
        data: data,
        success: function (data) {
            var list = data.list;

            $("#modal").on('hidden.bs.modal', function (e) {
                clearTimeout(recursive);
                console.log('stop');
            });

            if (list > 0) {
                recursive = setTimeout(run, 2000);  
                console.log('run');
            } else if (list == 0) {
                clearTimeout(recursive);
                console.log('stop');
            }

        }
    });
}

更新:

我以这种方式尝试过,但无法正常工作。

var recursive;

$("#modal").on('shown.bs.modal', function (e) {
    run();
});

$("#modal").on('hidden.bs.modal', function (e) {
    clearTimeout(recursive);
});

var run = function() {

    $.ajax({
        url: ajaxurl,
        dataType: 'json',
        type: 'GET',
        data: data,
        success: function (data) {
            var list = data.list;

            if (list > 0) {
                recursive = setTimeout(run, 2000);  
                console.log('run');
            } else if (list == 0) {
                clearTimeout(recursive);
                console.log('stop');
            }

        }
    });
}

标签: jqueryajaxajax-polling

解决方案


推荐阅读