【问题标题】:Make sure ajax success function is happening after $(document).ready()确保在 $(document).ready() 之后发生 ajax 成功功能
【发布时间】:2013-07-27 16:09:07
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery ajax dom


    【解决方案1】:

    可以做;

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

    【讨论】:

    • 不知道。有参考吗?
    • @OzrenTkalčecKrznarić 准备好“伪”事件使用承诺(延迟对象 readyList)手动解决,即使伪事件已经完成
    • @OzrenTkalčecKrznarić:见api.jquery.com/ready,以“还有……”开头的段落
    • 不是这样,在 DOM 准备好之前推迟回调执行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多