- 博客(22)
- 收藏
- 关注
转载 css解析原理
转载自:http://www.imooc.com/code/4570 CSS的解析原理 在开始前,我们必须了解一个真相:为什么排版引擎解析 CSS 选择器时一定要从右往左析? 1.HTML 经过解析生成 DOM Tree(这个我们比较熟悉);而在 CSS 解析完毕后,需要将解析的结果与 DOM Tree 的内容一起进行分析建立一棵 Render Tree,最终用来进行绘
2016-09-29 16:48:12 653
转载 jQuery源码解析-----Deferred是什么?
Deferred是什么? 前端项目的开发,不仅仅涉及到同步的概念,而且还会经常穿插各种异步的处理。一些大的操作,比如远程获取数据,操作一个大数据处理,这时候是不能马上获取到数据的。假设我们发送一个AJAX请求到接受到数据需要10秒钟,那么从发送到接受数据这个时间段中,前端的处理时间其实是空闲,但是对于开发者来说这种时间是不能浪费了,所以我们可以在10秒钟做很多同步的处理,同时等待异步
2016-09-22 10:05:34 489
转载 jQuery源码分析----Data类设计
转载自:http://www.imooc.com/code/3464 Data类的设计 我们看看Data类是如何构建这个缓存池的: (1)先在jQuery内部创建一个cache对象{}, 来保存缓存数据。 然后往需要进行缓存的DOM节点上扩展一个值为expando的属性 function Data() { Object.defineProperty(th
2016-09-20 16:20:58 368
转载 jQuery源码解析-----jQuery数据缓存系统
//jQuery缓存系统静态方法与实例方法的区别 jQuery.data(ele)与$(ele).data() 这两个函数都是用来在元素上存放数据,也就是平时所说的数据缓存,都返回jQuery对象,初学的时候很容易让人混淆,尤其是给dom元素添加缓存数据的时候。 简单的来说: 1.jQuery.data()可以实现为dom元素或js对象添加缓存 2.$("ele").data()实是对前
2016-09-20 14:23:44 356
转载 jQuery源码解析----回调函数"memory"场景的实现
//memory的设计 memory:包吃以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调。 回调函数是从异步队列Deferred分离出来的,所以很多的接口设计是为了契合Deferred接口,memory用的很多,这个缓存的设计这里提及一下主要是用来实现Deferred的异步收集与pipe管道风格的数据传递的,具体在Deferred有详解,这里大概了解一下作用范围。 memor
2016-09-20 10:50:47 378
转载 jQuery源码解析---jQuery回调模块的结构
jQuery回调模块结构 整个$.Callbacks的源码很少,它是一个工厂函数,使用函数调用(非new,它不是一个类)创建对象,它有一个可选参数flags用来设置回调函数的行为,对外的接口也就是self的返回。 jQuery.Callbacks()的API列表如下: callbacks.add() :回调列表中添加一个回调或回调的集合。 callbacks
2016-09-19 17:44:46 300
原创 JQuery源码解析---jQuery回调对象
//jquery回调对象 jquery.Callbacks一般开发者接触的很少的,虽然jQuery开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax()和$.Deferred()模板提供统一的基本功能组件。 它可以用来作为类似基础定义的新组件的功能。 jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版本中的_Defe
2016-09-19 15:16:51 386
转载 jquery源码解析---理解观察者模式
理解观察者模式 讲解jQuery回调对象之前,我们有必要先理解其背后的设计思想 - “观察者模式”。 观察者模式 (pub/sub) 的背后,总的想法是在应用程序中增强松耦合性。并非是在其它对象的方法上的单个对象调用。一个对象作为特定任务或是另一对象的活动的观察者,并且在这个任务或活动发生时,通知观察者。观察者也被叫作订阅者(Subscriber),它指向被观察的对象,既被观察
2016-09-19 11:54:10 886
原创 Jquery源码解析---利用队列来实现函数的顺序执行
//利用队列来实现函数的顺序执行 function test(list,callback){ var task; task = list.shift(); if(task){ task(); } if(list.length > 0){ arguments.callee(list,callback); }else{ callback(); } } var list
2016-09-19 11:23:34 1903
转载 jquery源码解析----each迭代器
jQuery的each迭代器 jQuery的each方法从使用上就要分2种情况: ☑ $.each()函数 ☑ $(selector).each() $.each()函数和$(selector).each()是不一样的,后者是专门用来遍历一个jQuery对象的,是为jQuery内部服务的。 $.each()函数可用于迭代任何集合,无论是“名/值”对象(JavaScrip
2016-09-18 11:20:41 561
转载 jQuery源码解析---get与eq的区别
get与eq的区别 .eq() 减少匹配元素的集合,根据index索引值,精确指定索引对象。 .get() 通过检索匹配jQuery对象得到对应的DOM元素。 同样是返回元素,那么eq与get有什么区别呢? eq返回的是一个jQuery对象,get返回的是一个DOM对象。举个例子: $( "li" ).get( 0 ).css("color", "red"); //错误
2016-09-14 15:34:21 691
转载 jQuery源码分析---仿栈与队列的操作
转载自:http://www.imooc.com/code/3414 仿栈与队列的操作 jQuery既然是模仿的数组结构,那么肯定会实现一套类数组的处理方法,比如常见的栈与队列操作push、pop、shift、unshift、求和、遍历循环each、排序及筛选等一系的扩展方法。 jQuery对象栈是一个便于Dom的查找,提供的一系列方法,jQuery可以是集合元素,那么我
2016-09-14 14:40:38 421
转载 jquery源码解析----回溯处理的设计
回溯处理的设计 在这一小节我将会带领你们了解jQuery对DOM进行遍历背后的工作机制,这样可以在编写代码时有意识地避免一些不必要的重复操作,从而提升代码的性能。 关于jQuery对象的包装 var $aaron = $("aaron"); 通过对sizzle的分析,我们可以得知Query选择器最终都是通过DOM接口实现取值的, 但是通过jQu
2016-09-14 11:25:51 503
转载 jQuery源码学习---插件接口的设计
如果jQuery没有插件接口的设计,那么他就像一个光杆司令没有士兵,就是没有手下,只有自己一个封闭的城堡。因此jQuery城堡需要设计一个大门--插件接口,从而打开大门开始招兵买马。当然jQuery除了获得“开发者社区”的 大力支持外,也有很多公司纷纷对它投出了橄榄枝,这也是它成功的关键。 基于插件接口设计的好处也是颇多的,其中一个最重要的好处是把功能从主体框架中剥离出去,降低了框架的复杂度。
2016-09-14 10:37:10 602
转载 作用域安全的构造函数以及js对象的创建步骤
//分离构造器 通过new操作符构建一个对象,一般经过四个步骤: A.创建一个对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 最后一点就说明了,我们只要返回一个新对象即可。其实new操作符主要是把原型链跟实例的this关联起来,这才是最关键的一点,所以我们如果需要原型链就必须要new操作符来处理。否则this就变成window
2016-09-12 15:20:37 455
转载 jquery源码解析----对象的创建
//jquery源码解析 对象的构建 面向对象的语言都有一个特点,他们都会有类这一个概念,通过类可以抽象出创建具体 相同方法与属性的对象,但是ECMAScript中是没有类的概念的,因此它的对象与基于类 的语言如java的定义是有所不同的。 在javascript世界中函数作为"一等公民",它不仅拥有一切传统函数的使用方式,而且 可以做到像简单值一样赋值、传参、返回,这样的函数也称之为
2016-09-12 13:55:56 222
转载 jquery源码解析----DOM文档加载步骤
//jquery中ready和load事件 jquery有3种针对文档加载的方法: $(document).ready(function(){ //代码逻辑 } ) //document ready简写 $(function(){ //代码逻辑 }) $(document).load( function(){ //代码逻辑 } ) DOM文档加载步骤: (1)解析HTML结构
2016-09-12 13:37:10 808
转载 jquery源码阅读----立即调用表达式
任何库与框架设计的第一个要点就是解决命名空间和变量污染问题。 jquery就是利用了js函数作用域的特性,采用立即调用表达式包裹了 自身的方法解决这个问题。 (function(window,undefined){ var jquery = function(){}; window.jquery=window.$ = jquery; })(window) 从上面的代码可以看出,自动初始
2016-09-12 10:30:56 278
原创 微信开发 IOS 返回键问题
场景 进入微信公众号 点菜单 跳到 自己开发的jsp页面 点链接 跳转到 公众号平台(官方)发布的图文页面 点返回按钮没用 ios 不能返回到自己开发的jsp页面 (安卓里是好的) 解决方案: 在跳转路径后面加上: #wechat_redirect
2016-09-09 14:31:11 3178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人