ready用来实现延迟加载的方法,最主要的功能就是$(document).ready(function(){......}),当整个document加载完成后再执行其中的方法。让我们看一下jQuery里具体的实现方式。
首先看一下源码:
1. .ready()方法
2. jQuery.bindReady()方法
3. Deferred方法——个人认为可以当做一个js闭包的很好的例子
4.jQuery.ready()
当执行.ready()方法时,则会触发jQuery.bindReady(),然后创建readyList = jQuery._Deferred();返回的deferred对象是一个闭包,它封装了一些方法,主要是done,resolveWith, done用来push function to callbacklist resolveWith则是执行callbacklist里的function.在bindReady中还有个重要功能就是绑定原生事件,当dom加载完成以后,触发jQuery.ready()方法。该方法做一些已经ready过的标记,并且触发readyList.resolveWith。
值得学习的地方
1.不同浏览器内核绑定onload方法
2.deferred闭包的使用
3.队列处理的技巧