javascript - 避免重复调用一个函数,除非它的工作完成

标签 javascript jquery

我有一个函数需要在 5 秒时间间隔后调用。此功能在后台处理 AJAX 请求(请求转到其他网站,因此可能需要几秒钟)。函数如下:

function myFunction() {
    var sendData = {
        cid: cid
    };
    $.post('xyz.com/somepage.php', sendData, function(response) {
        //processes the response
    });
    setTimeout(myFunction, 5000); //call again after 5 seconds
}

我需要考虑一个事实,即某些用户的互联网连接速度可能很慢,并且请求可能需要超过 5 秒的时间。所以,我需要避免再次调用该函数(或者我们说避免发送请求),直到它的工作完成。我在这个 link 上尝试了最后一段给出的方法,但它没有用。有什么建议吗?谢谢。

最佳答案

ajax调用完成后可以调用该函数

function myFunction() {
    var sendData = {
        cid: cid
    };
    $.post('xyz.com/somepage.php', sendData, function(response) {
        //processes the response
    }).done(function() {
        setTimeout(myFunction, 5000); //call again after 5 seconds
    });
}

关于javascript - 避免重复调用一个函数,除非它的工作完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493865/

相关文章:

javascript - 在单个页面上处理两个 ajax 调用以将数据拉入另一个页面上的 Highcharts

javascript - 如何插入标记来指出 Google map 中的特定位置?

javascript - 如何执行过滤器和包含

javascript - jQuery 获取 select 标签值

javascript - 更改网页中的鼠标指针

javascript - javascript函数中的所有语句都没有被执行

javascript - 包含 javascript 的最有效方法?

javascript - 滚动功能也会在页面加载时执行

javascript - 使用 CSS 显示两个 gif

jquery - 什么是缓动函数?