在Javascript中触发DOMContentLoaded时如何找出正在执行的内容?

时间:2013-02-08 18:18:25

标签: javascript document-ready domcontentloaded

有没有办法获取在触发DOMContentLoaded时执行的所有代码,或jQuery的$(document).ready()函数。

我正在尝试优化我的网站并通过速度测试,我发现在触发DOMContentLoaded时,花费了2秒的页面加载时间来处理事件。

3 个答案:

答案 0 :(得分:2)

我强烈推荐Chrome Profiler执行此任务:

http://www.youtube.com/watch?v=OxW1dCjOstE

答案 1 :(得分:1)

试试这个:

console.log($(document).data("events").ready);

基于John Resig的帖子:http://forum.jquery.com/topic/list-event-listeners

另外,请查看listHandlers plugin.

如果所有其他方法都失败了,您可以暂时编辑核心jQuery文件:

ready: function( fn ) {    
    //create a wrapper function so we can step into the debugger
    var fn2 = function() {
        var args = [].slice.call(arguments);
        debugger; // <-- start debugging each handler as it fires
        return fn.apply(this, args);
    }

    // Attach the listeners
    jQuery.bindReady();

    // Add the callback
    readyList.add( fn2 );

    return this;    
},

答案 2 :(得分:0)

根据Network Panel info in the Chrome Developer Tools documentationDomContentLoaded一旦出现蓝线就会被解雇。 FWIW,load一旦出现红线就会被解雇。