是否有方法获取触发DOMContentLoaded时将执行的所有代码,或者jQuery的$(document).ready()函数。
我正在尝试优化我的网站,通过速度测试,我发现当DOMContentLoaded被触发时,页面的加载时间中有2秒用于处理事件。
我强烈建议使用Chrome探查器执行此任务:
http://www.youtube.com/watch?v=OxW1dCjOstE
试试这个:
console.log($(document).data("events").ready);
根据John Resig的帖子:http://forum.jquery.com/topic/list-event-listeners
另外,请查看listHandlers
插件。
如果所有其他操作都失败了,您可以临时编辑核心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;
},
根据Chrome开发工具文档中的"网络面板"信息,一旦出现蓝线,DomContentLoaded
就会启动。一旦红线出现,FWIW、load
已经发射。