javascript - 暂停和恢复ajax重复请求

标签 javascript jquery ajax

为了编写 Wiktor ( https://stackoverflow.com/a/43338063/7666076) 发布的代码,如何在单击某个按钮(两个不同的按钮,如“暂停”和“播放”)后暂停和恢复发送 ajax 请求。

还有如何在点击“暂停”按钮后立即中断当前的 ajax 请求。我不想等待将由 ajax 查询获取的新数据。

这是我改编的代码:

function RefreshData()
{
    console.log('Sending AJAX request...');
    $.ajax({
        type: "GET",
        url: "getAjaxRequest.php?"+device+"&callback=?",
        dataType: "jsonp"
    }).done(function(dataJSON) {
        adaptJsonData(dataJSON);
        console.log('success');
    }).fail(function() {
        console.log('error');
    }).always(function() {
        intervalTime = 100;
        console.log('Waiting '+intervalTime+' miliseconds...');
        setTimeout(RefreshData, intervalTime);
    });

    return true;
}

function adaptJsonData(dataJSON) {
    # ... some logic with dataJSON object
}

最佳答案

var xhr = null;
function RefreshData() {
    if( xhr != null ) {
       xhr.abort();
        xhr = null;
    }
    xhr = $.ajax({'...'});
}

关于javascript - 暂停和恢复ajax重复请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49153829/

相关文章:

javascript - PHP 数组通过 AJAX 分隔 JavaScript 文件

javascript - jQuery empty 仅适用于 AJAX 调用后的第二次点击

javascript - 如何制作一个4步的范围 slider ?

jQuery 关于更改问题

Javascript 数组计数与控制台不一致?

jQuery - 显示和隐藏模式

jquery - 我怎样才能对 .mousenter THIS 执行两种效果?

javascript - 如何使用 PHP 在服务器上保存 JavaScript 字符串并稍后再次请求?

javascript - jquery droppable 不工作

javascript - jQuery Select2 - 使用选项卡选择一个选项