文档和窗口之间的差异,加载和准备在jQuery中
首先,让我们讨论窗口和文档。直观地说,窗口代表浏览器窗口,文档表示加载在浏览器窗口中的DOM元素。此外,文档是窗口的属性,窗口是最顶层的对象。
这两者有什么区别这是很清楚的,现在有一个浏览器,里面的页面加载的时间远远超出屏幕,当然,这时会出现,滚动条,$(窗口)(高度)和$(文档)(高度)不相等,高度肯定的文件比窗口窗口大,因为窗口总是那么大:
再说一遍,加载事件和就绪事件(这里的加载和就绪指的是jQuery事件,相同的)。
首先,负载,负载的事件是用来替换原有在window.onload,仅适用于两种情况:
在窗口对象上。例如,$(窗口)加载(FN);。
URL的元素(图片、脚本、框架、iframes)。例如,$(IMG)负载(FN);。
此外,任何元素都没有加载事件,例如:$(文档)加载(FN);这是错误的书写方式,而且根本不会执行。
加载事件需要完全加载才能触发。所谓的满载不仅仅是加载DOM结构,还需要所有链接引用来加载。
最重要的事情还没有提到。jQuery官方文件清楚地表明,负载事件跨浏览器兼容性很差(不一致和可靠的跨浏览器)。经过测试,谷歌浏览器只支持美元(窗口),负载(FN);和Firefox浏览器支持$(窗口),负载(FN);和$(IMG)负载(FN);
因此,除非有必要,否则不建议加载事件。
最后,准备就绪的事件可以添加到任何元素中,比如$(窗口)。
就绪事件不需要完全加载页面,只需加载DOM结构以触发。
就绪事件可以同时注册,按注册顺序执行。注意,即使是与不同元素注册的就绪事件也会按顺序执行:
复制代码代码如下所示:
$(窗口)Ready(函数(){)
警报(窗口);
});
$(文档)Ready(函数(){)
警报(文档);
});
$()。Ready(函数(){)
警报();
});
根据常识,应该首先加载div,所以首先执行警报(),然后是警报(文档)或警报(窗口),但不幸的是,警报(div)是最后一个。因此,是否在同一个元素上注册就绪事件是按注册顺序执行的。
在最后一个项目,准备活动是在window.onload(或冲突),如果在window.onload(或)是用于准备事件将不会执行。
经过多次讨论,证明了$(文档)就绪(FN)是最好的。兼容性和安全性是最好的。如果有这样的需求,试着用这种方法。