Fork me on GitHub
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
  2013年11月26日
摘要: 那么jQuery事件处理机制能帮我们处理那些问题?毋容置疑首先要解决浏览器事件兼容问题可以在一个事件类型上添加多个事件处理函数,可以一次添加多个事件类型的事件处理函数提供了常用事件的便捷方法支持自定义事件扩展了组合事件提供了统一的事件封装、绑定、执行、销毁机制……为了更深入的理解幕后的实现,所以先整理整体的结构思路,从1.7后就去除了live绑定,所以现在的整个事件的API如图:jQuery的事件绑定有多个方法可以调用,以click事件来举例:click方法bind方法delegate方法on方法$('#foo').click(function(){ })$('#foo 阅读全文
posted @ 2013-11-26 08:47 【艾伦】 阅读(8660) 评论(11) 推荐(23) 编辑
  2013年11月25日
摘要: 事件(Event)是JavaScript应用跳动的心脏,通过使用JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应事件的基础就不重复讲解了,本来是定位源码分析实现的, 所以需要有一定的基础才行为了下一步更好的理解内部的实现,所以首先得清楚的认识到事件接口的划分网上资料遍地都是,但是作为一个jQuery系列的源码分析,我还是很有必要在重新总结一下jQuery对事件的绑定分别有几个API http://www.css88.com/jqapi-1.9/.bind().live().delegate().on()不管是用什么方式绑定,归根到底还是用addEven 阅读全文
posted @ 2013-11-25 00:03 【艾伦】 阅读(13713) 评论(12) 推荐(29) 编辑
  2013年11月22日
摘要: 关于钩子:http://www.cnblogs.com/aaronjs/p/3387906.html本章的目的很简单,通过钩子函数更细节的了解浏览器差异与处理方案,版本是2.0.3所以不兼容ie6.7.8,所以对应了钩子会少很多。。总的来说钩子在.attr(), .prop(), .val() and .css() 四种操作中会涉及属性操作的钩子propFixpropHooksattrHooksvalHooksjQuery.propFix 中的对象源码部分1:保留值属性名字修正jQuery.propFix: { for : "htmlFor", class : " 阅读全文
posted @ 2013-11-22 10:41 【艾伦】 阅读(7074) 评论(3) 推荐(11) 编辑
  2013年11月20日
摘要: 根据API分类CSSaddClass()jQuery.cssHooks.hasClass().removeClass().toggleClass().addClass()对元素的样式操作,底层的实现就是修改元素的className值实现的功能:增加一条样式规则: .addClass(‘myClass’)增加多条样式规则: .addClass(‘myClass yourClass’)传递回调遍历样式规则:$("ul li:last").addClass(function(index) { return "item-" + index;});从接口传参去分析 阅读全文
posted @ 2013-11-20 21:49 【艾伦】 阅读(3967) 评论(1) 推荐(10) 编辑
  2013年11月19日
摘要: jQuery提供了一些快捷函数来对dom对象的属性进行存取操作. 这一部分还是比较简单的.根据API这章主要是分解5个方法.attr() 获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。.prop() 获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。.removeAttr() 为匹配的元素集合中的每个元素中移除一个属性(attribute)。.removeProp() 为集合中匹配的元素删除一个属性(property)。.val() 获取匹配的元素集合中第一个元素的当前值或设置匹配的元素集合中每个元素的值jQue 阅读全文
posted @ 2013-11-19 13:01 【艾伦】 阅读(10284) 评论(9) 推荐(24) 编辑
  2013年11月4日
摘要: pheongap项目:http://www.nduoa.com/apk/detail/646816主要的问题:heap过大,内存低性能差的机子上引起奔溃,直接退出关于web app的优化,不仅仅只是js方面,包括HTML布局嵌套,CSS的属性使用,数据的读取,还有浏览器的重排与回流之类的这里就不讨论了,本章涉及的是脚本代码引发的性能问题,更进一步说就是闭包带来的内存泄露关于性能:首先我不得不承认一个事实,移动端的性能跟PC端,那完全不是一回事比如用innerHTML绘制大段的HTML结构,之后同步获取生成HTML中的ID节点,结果不存在这种问题在单页面模拟多页面,动态创建DOM的时候,尤为明显 阅读全文
posted @ 2013-11-04 06:26 【艾伦】 阅读(4465) 评论(14) 推荐(20) 编辑
  2013年10月27日
摘要: GOF在《设计模式》中说到:面向接口编程,而非面向实现编程鉴于此,这个概念可见一斑!JS却不像其他面向对象的高级语言(C#,Java,C++等)拥有内建的接口机制,以确定一组对象和另一组对象包含相似的的特性。所幸的是JS拥有强大的灵活性,这使得模仿接口特性又变得非常简单。那么到底是接口呢?接口概念:接口提供了一种用以说明一个对象应该具有那些方法的手段接口,为一些具有相似行为的类之间(可能为同一种类型,也可能为不同类型)提供统一的方法定义,使这些类之间能够很好的实现通信使用接口的优点:自我描述性,促进代码的重用明确一个类实现的方法,帮助其使用这个类稳定不同类之间的通信一个需求,需要多个部门协调合 阅读全文
posted @ 2013-10-27 15:57 【艾伦】 阅读(2779) 评论(8) 推荐(9) 编辑
  2013年10月26日
摘要: 最近抽出点时间想弄个dom模块化的模板引擎,不过现在这种都是MVVM自带的,索性就想自己造轮子写一个简单的MVVM框架了借鉴的自然还是从正美的Avalon开始了,我2013年写过一个关于MVCMVVM源码分析系列,其实MVVM并不难为了便于大家更深刻理解前二版会先简单的模仿avalon的实现最基本的... 阅读全文
posted @ 2013-10-26 21:58 【艾伦】 阅读(7077) 评论(7) 推荐(14) 编辑
  2013年10月25日
摘要: 了解了jQuery对DOM进行遍历背后的工作机制,可以在编写代码时有意识地避免一些不必要的重复操作,从而提升代码的性能从这章开始慢慢插入jQuery内部一系列工具方法的实现关于jQuery对象的包装var $aaron = $("aaron");通过对sizzle的分析呢,jQuery选择器,反正最终都是通过dom接口实现取值的, 但是通过jQuery处理后返回的不仅仅只有dom对象,而是一个包装容器返回的jQuery对象:$aaronjQuery对象,其中有个prevObject这个是干嘛用的呢?jQuery对象栈jQuery内部维护着一个jQuery对象栈。每个遍历方法 阅读全文
posted @ 2013-10-25 11:59 【艾伦】 阅读(6372) 评论(4) 推荐(12) 编辑
  2013年10月22日
摘要: 历史背景:jQuery从1.2.3版本引入数据缓存系统,主要的原因就是早期的事件系统 Dean Edwards 的 ddEvent.js代码带来的问题:没有一个系统的缓存机制,它把事件的回调都放到EventTarget之上,这会引发循环引用如果EventTarget是window对象,又会引发全局污染不同模块之间用不同缓存变量一般jQuery开发,我们都喜欢便捷式的把很多属性,比如状态标志都写到dom节点中,也就是HTMLElement好处:直观,便捷坏处:循环引用直接暴露数据,安全性?增加一堆的自定义属性标签,对浏览器来说是没意义的取数据的时候要对HTML节点做操作什么是内存泄露内存泄露是指 阅读全文
posted @ 2013-10-22 08:42 【艾伦】 阅读(8850) 评论(8) 推荐(34) 编辑
  2013年10月9日
摘要: Deferred的概念请看第一篇http://www.cnblogs.com/aaronjs/p/3348569.html******************构建Deferred对象时候的流程图************************************************源码解析**********************因为callback被剥离出去后,整个deferred就显得非常的精简jQuery.extend({ Deferred : function(){} when : function())}对于extend的继承这个东东,在之前就提及过j... 阅读全文
posted @ 2013-10-09 08:20 【艾伦】 阅读(13229) 评论(21) 推荐(97) 编辑
  2013年10月2日
摘要: JavaScript编程几乎总是伴随着异步操作,传统的异步操作会在操作完成之后,使用回调函数传回结果,而回调函数中则包含了后续的工作。这也是造成异步编程困难的主要原因:我们一直习惯于“线性”地编写代码逻辑,但是大量异步操作所带来的回调函数,会把我们的算法分解地支离破碎。此时我们不能用if来实现逻辑分支,也不能用while/for/do来实现循环,更不用提异步操作之间的组合、错误处理以及取消操作了。因此也诞生了如jQuery Deferred这样的辅助类库举一个例子会有助于理解我做的是phonegap项目,所以涉及到的异步处理就别特多:1. 常见的setTimeout2. 与底层代码通信,调用. 阅读全文
posted @ 2013-10-02 18:00 【艾伦】 阅读(11689) 评论(5) 推荐(23) 编辑
  2013年9月27日
摘要: 源码API:http://api.jquery.com/jQuery.Callbacks/jQuery.Callbacks()是在版本1.7中新加入的。它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。那么jQuery.Callbacks使用场景在哪里?在很多时候需要控制一系列的函数顺序执行。那么一般就需要一个队列函数来处理这个问题我们看一段代码function Aaron(List, callback) { setTimeout(function() { var task = List.shift(); task(); //执行函数 ... 阅读全文
posted @ 2013-09-27 15:29 【艾伦】 阅读(21066) 评论(32) 推荐(53) 编辑
  2013年9月26日
摘要: 来源地址:http://dmitrysoshnikov.com/ecmascript/the-quiz/#q1另一篇帖子 看看国外的javascript题目,你能全部做对吗?http://www.cnblogs.com/aaronjs/p/3172112.html答案都是自己总结的,毕竟是人肉解释器,解释不一定完全正确,如有不对欢迎大家指出!题目1. 结果是什么?typeof typeof(null)“undefined”SyntaxError“string”“object”TypeError答案"string"这个是10个中最简单的问题了typeof typeof 的结果 阅读全文
posted @ 2013-09-26 10:17 【艾伦】 阅读(6034) 评论(8) 推荐(21) 编辑
  2013年9月24日
摘要: 为什么Sizzle很高效?首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理HTML文档一共有这么四个API:getElementById 上下文只能是HTML文档 浏览器支持情况:IE 6+, Firefox 3+, Safari 3+, Chrome 4+, and Opera 10+;getElementsByName,上下文只能是HTML文档浏览器支持情况:IE 6+, Firefox 3+, Safari 3+,Chrome 4+, and Opera 10+;getElementsByClassName浏览器支持情况:IE 9+, Firefox 3+, Safari4+ 阅读全文
posted @ 2013-09-24 21:41 【艾伦】 阅读(8236) 评论(9) 推荐(16) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页