确保在$(document).ready()之后发生ajax成功函数

时间:2013-07-27 11:49:06

标签: javascript jquery ajax dom

我正试图通过移动ajax调用来加速我的一些网站

情况如下:

我有一个页面,里面有一些画布+其他数据。

请求页面时,会加载“其他数据”。在$(document).ready();我有一个获取画布数据的函数。这是使用ajax完成的。

我想知道我是否可以在$(document).ready()之前进行ajax调用,但是只有在dom准备就绪时才能成功调用ajax(即渲染画布)。

所以:

$(document).ready(function(){
    $.ajax({
        url: '/someurl'
        dataType: 'json',
        success: function(response){
            startDrawOnCanvas(stage, response.data);
        }
    });
}

这有效,但我喜欢这样的东西

$(document).ready(function(){
}

$.ajax({
    url: '/someurl'
    dataType: 'json',
    success: function(response){
        //only fire once dom is ready for it
        startDrawOnCanvas(stage, response.data);
    }
});

1 个答案:

答案 0 :(得分:5)

可以做;

$.ajax({
    url: '/someurl'
    dataType: 'json',
    success: function(response){
        $(document).ready(function () {
            //will fire once dom is ready for it
            startDrawOnCanvas(stage, response.data);
        });
    }
});

... jQuery将检测$(document).ready()是否已经运行,如果有,则立即运行回调。或者,它会像往常一样推迟它。