我已经将
window.addEventListener('DOMContentLoaded', function() {});
替换为jQuery的 $(document).bind('ready', function() {});
,因为第一个在IE < 9上无法正常工作,我不想为该垃圾浏览器使用.attachEvent()
进行操作,如果可以由jQuery自己很好地处理这个问题。
替换后不久,我注意到DOMContentLoaded
事件总是在页面加载/刷新后的0-2毫秒左右被触发(至少这是由我的记录脚本记录的),而.ready()
总是需要至少15-20毫秒才会被触发(同样是由记录脚本记录的)。
我只是出于好奇心问一下,为什么会有如此“显着”的延迟?当然,对我来说,jQuery稍后触发该事件没有任何问题。只是因为我想知道所有的答案(并统治世界!:]),所以我不能睡觉!:]
编辑:在.ready()函数文档中,一些用户(Nick (of Nexxar))指出:“jQuery在IE上模拟不存在的“DOMContentLoaded”事件,但使用的机制比其他浏览器上使用的事件要晚得多”。也许这就是我要问的内容?
DOMContentLoaded
的浏览器(如 IE < 9)中可能会有延迟(事件被触发时的时间变化)。但是我在一个肯定支持它的浏览器中测试了这个东西(Chrome 20 和 Firefox 13),在两个浏览器中都出现了约 15-20 秒的延迟。 - trejder$(document).ready
而不是.bind
,它们非常不同。 - Esailija$(document).bind('ready', function() {});
和$(document).ready(function() {});
这两个写法会有这么大的区别呢? - trejder