3

我正在尝试通过移动 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);
    }
});
4

1 回答 1

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()已经运行,如果已经运行,则立即运行回调。或者,它会像往常一样推迟它。

于 2013-07-27T11:52:51.693 回答