等待AJAX​​响应完全准备好/呈现

时间:2017-06-22 13:30:06

标签: javascript jquery json ajax

我有一个ajax调用返回插入容器的html代码。

现在我需要调用一个jQuery函数来格式化库,但是我找不到一种方法来确保jQuery函数等待returnData被完全加载/呈现。

正如你所看到的,我已经尝试过.ready()但它不起作用。我也尝试了setTimeout,它实际上有效,但由于returnedData可以包含很多图像,我不能使用它,因为我不知道加载所有图像需要多长时间。

有什么想法吗?

$(document).ready(function() {
    $.ajax(url, {type: 'POST', dataType: 'json', data: data, success: success_handler});
});

function success_handler(returnedData) {
    $('.category-images-js').html(returnedData);
    $('.category-images-js').ready(function() {
        // Code to run after all data inside returnedData is fully ready/rendered
    );
}

解: 这个帖子:How to know if all elements in a DIV have been fully loaded?对我有用,但我必须像我运行的代码一样解决这个问题,当RETData中的数据完全准备好/呈现时,每个图像的on load触发器触发3次。

1 个答案:

答案 0 :(得分:0)

我已经制作了自己的ajax功能,所以我希望它适合你:

function xhr(u, c) {
    var x = new XMLHttpRequest();
    x.onreadystatechange = function (){
        if (x.readyState == 4 && x.status == 200){
            c(x.responseText)
        }
    };
    x.open("GET", u, true);
    x.send()
}

u =网址

c =回调功能