javascript - 多个ajax调用之间的延迟

标签 javascript jquery

我有 5 个 ajax 调用,如下所示(未发布全部五个):

tabTest = {
BASE_URL : 'http://localhost/project/',
getPics : function(){

    $.ajax({
        type : 'GET',
        url : this.BASE_URL +'js/image1.js',
        dataType : "json",
        async: false,
        success: function(data){
            var pic = data.images.image[0].image_one;
                $('#pic1 img').attr("src", pic);
        }   
    });
    $.ajax({
        type : 'GET',
        url : this.BASE_URL +'js/image2.js',
        dataType : "json",
        async: false,
        success: function(data){
            var pic = data.images.image[0].image_two;           
                $('#pic2 img').attr("src", pic);
        }   
    });
   }
};

ajax 调用确实有效,但它们都会同时触发;相反,我需要在每个调用之间设置一个延迟,这样它们就不会一次全部触发,而是按顺序仅触发一次(单击时,这发生在不同的函数中),每次调用之间间隔 5 秒。

我尝试过使用“setTimeout”,但还没有起作用。我真的不知道如何继续这件事。

最佳答案

如果你让 AJAX 调用它自己的 setTimeout() ,那么它没有理由不工作:

setTimeout(function(){
    $.ajax({
        type : 'GET',
        url : this.BASE_URL +'js/image1.js',
        dataType : "json",
        async: false,
        success: function(data){
            var pic = data.images.image[0].image_one;
            $('#pic1 img').attr("src", pic);
        }   
    });
}, 5000);

然后将每次调用的持续时间增加 5000。所以第二个看起来像:

setTimeout(function(){
    $.ajax({
        type : 'GET',
        url : this.BASE_URL +'js/image2.js',
        dataType : "json",
        async: false,
        success: function(data){
            var pic = data.images.image[0].image_one;
            $('#pic2 img').attr("src", pic);
        }   
    });
}, 10000);

您也可以将函数放在前一个请求的回调中,尽管请求失败意味着所有后续 AJAX 请求都不会被调用。

关于javascript - 多个ajax调用之间的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546763/

相关文章:

javascript - 调整大小时如何修复页脚重叠内容

javascript - Reactjs使用状态: select onChange triggers setState but component doesn't re-render

javascript - Razor 模板到 javascript 字符串

javascript - 如何使用对象正确设置插件的选项

javascript - 将 var 添加到 url 将不起作用! AJAX/查询

带有 ngClass 的 Javascript Angular 4 eventEmitter

php单选按钮自动更新数据库表

javascript - 禁用提交按钮,直到选择框选项

javascript - jquery 如果在数组中找不到元素则添加元素

jquery - select2 与 closeOnSelect false 丢失选择上的滚动位置