分类 HTML 下的文章

jQuery源码分析(十二): 选择器


起步

入口$提供css选择器有以下的处理方式:

$(document)
$('<div></div>')
$('div')
$('.class')
$('#id')
$('[attr]')  //[att=val] [att~=val] [att|=val] [attr^=val] [attr$=val] [attr*=val] [attribute!=value]
$()
$(function(){})
$("input:radio", $('div'))
$("<div>", {"class":"test", text:"ttt"})
$(".class1, .class2, div")
$("div > .class") // ancestor descendant,parent > child,prev + next,prev ~ siblings

针对选择器的处理太多了(肯定大于这12种),一个功能越灵活就意味着它的实现就越复杂。


jQuery源码分析(十): 异步助手when


起步

when是jq提供一种方法来执行异步对象的函数。

$.when(d1,d2,d3,d4......).done(function(v1, v2,v3...) {
    //等待所有异步加载完毕后执行
}); 

d1,d2,d3都是有规范的,都是通过Deferred产生的(如果不是,done()会立即执行)。


javascript的异步机制


起步

js编程总是伴随着异步操作,使得我们习惯的“线性”执行变得不一样,我们常用的异步操作:定时器setTimeout,事件绑定onclick,异步请求XMLHttpRequest,还有一些不常用的PromisesWebWorkor