- 浏览: 2563050 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1286)
- js-oop (2)
- js-window (10)
- js-event (19)
- js-string (37)
- js-array (27)
- js-page (4)
- js-dom (62)
- js-lang (8)
- js-number (7)
- js-platform (3)
- js-object (15)
- js-element (3)
- js-browser (7)
- js-url (6)
- js-date (10)
- css基础 (48)
- css优化 (15)
- html基础 (17)
- html标签 (19)
- js基础 (117)
- js-兼容性差异 (33)
- js引擎 (3)
- js性能 (14)
- json (6)
- jQuery源码浅析 (43)
- web mobile开发资料 (78)
- js跨域 (2)
- html5 (74)
- html5-canvas (7)
- css3 (53)
- 浏览器 (5)
- api设计学 (3)
- js-加载 (3)
- linux (37)
- 架构师 (1)
- php (2)
- self开发的脚本库--凤凰 (2)
- web应用名词 (6)
- javascript新特性翻译 (8)
- ajax (6)
- jQuery动画效果 (7)
- prototype的解读 (13)
- 优秀插件翻译 (1)
- css解决方案 (26)
- 数据库 (2)
- english daily (59)
- 浏览器内核探究 (1)
- jQuery插件介绍 (9)
- jquery基础篇 (26)
- chrome浏览器问题整理 (14)
- js选择器那些事 (3)
- 前端框架 (26)
- Firefox私有属性 (11)
- webkit私有属性集合 (17)
- 书籍推荐 (21)
- 数据结构 (1)
- 网站建设相关 (7)
- 好文翻译 (2)
- 个人作品 (3)
- kissy的解读 (4)
- css-layout(布局研究) (5)
- less研究 (1)
- YUI探究 (1)
- hash探究 (1)
- js动画 (7)
- 前端面试题 (37)
- css书写规范 (1)
- js模板引擎 (6)
- js模块化 (19)
- 编写高质量代码 (3)
- 性能探究--应用协议 (2)
- 前端图像处理 (19)
- Mac OS相关 (21)
- 正则表达式 (11)
- 离线应用相关 (0)
- 前端工具 (65)
- nodeJS (55)
- jquery优化篇 (2)
- 设计模式探究系列 (3)
- windows7 (2)
- IE10 (10)
- 微博开放平台探究 (2)
- 常用web服务接口 (1)
- 数据存储相关 (8)
- 零时文件 (2)
- jQuery Mobile (16)
- backbone (15)
- underscore (22)
- sass (11)
- android (3)
- phonegap (10)
- IE私有 (11)
- qwrap (8)
- git (14)
- chrome extensions (5)
- freemarker (11)
- angularJS (3)
- seo (2)
- markdown (3)
- css动画 (4)
- 安卓开发 (2)
- React (7)
- 活动页技术 (1)
- 网络安全 (3)
- grunt (7)
- Lo-Dash (3)
- 前端国际化 (4)
- 版本控制 (2)
- 盒模型 (4)
- 微信开发 (1)
- Mock数据工具 (1)
- sails (1)
- vim (1)
- js-color (1)
- iOS 基础 (43)
最新评论
-
jertom:
<div id="showInfo" ...
addEventListener等事件监听的参数细谈 -
乌托邦国王:
引用[u][/u]
css3动画属性系列之transform细讲移动translate -
hvang1988:
能提供附件下载吗,找不到js库,google封了访问不了
Syntaxhighlighter---代码高亮插件介绍 -
sscsacdsadcsd:
我的天 那到底是为什么function是object我看und ...
typeof func ==='function'的疑惑 -
wkjiangwk:
试了,没用,你们从不去测试。
介绍一下x-webkit-speech -------实现语音输入
前言:
上一篇:
上上一篇:
正文:
本文关注一下jQuery1.4版本:
主要的变化:
1、增加了一个noData的对象:对特定的这3个标签不添加expando属性,当时觉得因为会抛错!
noData:{ "embed":true, "object":true, "applet":true }
带来的影响就是:
//多了一个变量,但是利用率就one var emptyObject = {}; jQuery.extend({ data:function(elem,name,data){ //增加了对elem的判断 if(elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]){ //如果是指定的3个标签就返回了 return; } elem = elem == window ? windowData : elem; //下面逻辑细节也有部分优化 var id = elem[expando], cache = jQuery.cache, thisCache; //处理特殊情况,没有传递name if(!name && !id){ return null; } //id的计算目的都是保证唯一 if(!id){ id = ++uuid } //判断name参数的类型 if(typeof name === "object"){ elem[expando] = id; thisCache = cache[id] = jQuery.extend(true,{},name); }else if(cache[id]){ thisCache = cache[id]; }else if(typeof data === "undefined"){ thisCache = emptyObject; }else{ thisCache = cache[id] = {}; } if(data !== undefined){ elem[expando] = id; thisCache[name] = data; } return typeof name === "string" ? thisCache[name] : thisCache; } });
看看fn里面的变换:
jQuery.fn.extend({ data:function(key,value){ //增加了对key参数的判断 if(typeof key === "undefined" && this.length){ return jQuery.data(this[0]); }else if(typeof key === "object"){ //增加了处理object类型的支持,所有嘛each一下 return this.each(function(){ jQuery.data(this,key); }); } } });
removeData的变化:
removeData:function(elem,name){ //加了一层判断 if(elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase]){ return; } elem = elem == window ? windowData : elem; var id = elem[expando], cache = jQuery.cache, //变化点1 thisCache = cache[id]; //变化点2 if(name){ if(thisCache){ delete thisCache[name]; //如果空对象了,再次调用removeData if(jQuery.isEmptyObject(thisCache)){ jQuery.removeData(elem); } } } }
使用方法:
<div id="out1"></div>
$('#out1').data({'job':'fe','name':'zhangyaochun_new'});
总结:
- 人性化地支持了key的原来单一的string类型
- 对特定的3个标签不处理数据存储
- 作用域链优化:将频繁出现的jQuery.cache变量化cache,而且增加了一个变量thisCache
发表评论
-
qwrap之Jss调用
2013-04-23 13:53 1282/** *@name getOwnJss ... -
探究一下qwrap的Jss开篇
2013-04-23 13:53 1275本文探究一下qwrap的一个特色地方:Jss ... -
介绍jquery事件的一种内部写法
2013-03-25 20:00 1964注释:本文不探究jquery event机制, ... -
jquery add详解
2013-03-19 18:40 0add:function(elem,types, ... -
jquery事件系统解耦之一
2013-03-19 17:43 0先上代码:http://code.jqu ... -
jquery api之camelCase
2013-03-12 11:36 1190本代码取之:1.4.3版本(才开始有) ... -
jq插件之metadata
2013-03-11 17:19 1615先直接上源码吧: (function( ... -
jq的选择器流程之二
2013-01-28 16:45 0前面简单些了一篇《jq的选择器流程分析开篇》,本文关注1. ... -
jq的选择器流程分析开篇
2013-01-28 14:17 1697本文简单地分析以下jquery的选择器流程: 为了 ... -
jquery Sizzle系列之filters
2013-01-28 12:16 1697本代码来自1.7.1版本。 jQuery.expr ... -
event.isDefaultPrevented
2013-01-14 12:18 1608jQuery 1.3版本开始引入了一个这个 ... -
jQuery相关的boxModel
2012-12-21 20:58 1558此方法比较简单,但是 ... -
深入解读jquery的数据存储相关(data)序3
2012-12-19 18:26 1本文关注一下jQuery1.4版本: 主要的变化: ... -
深入解读jquery的数据存储相关(data)序2
2012-12-18 11:03 1780前言: 先回顾一下上一篇:深入解读jquery ... -
深入解读jquery的数据存储相关(data)序2
2012-12-18 11:00 3前言: 先回顾一下 ... -
深入解读jquery的数据存储相关(data)开篇
2012-12-17 20:43 1946前言: 周六看了司徒的一篇文章,觉得这个top ... -
深入解读jquery的数据存储相关(data)开篇
2012-12-17 20:29 2前言: 周六看了司徒的一篇文章,觉得这个topic不 ... -
jQuery数据缓存相关api简介
2012-12-17 13:32 1269本文简单汇总一下jQuery数据缓存相关的几个api: ... -
IE下删除自定义属性的兼容性问题
2012-12-17 10:02 2812很多时候我们会给某个dom元素赋予一些自定义的属 ... -
关于数据存储方式的简单实现方案
2012-10-26 21:43 1332其实很多框架都会考虑数据存储相关的,有很多方式:有存节点上,也 ...
相关推荐
资源名称:jQuery技术内幕:深入解析jQuery架构设计与实现原理内容简介:本书首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jQuery的工作原理有大致的印象;进而通过“构造 jQuery 对象”章节...
《jquery技术内幕:深入解析jquery架构设计与实现原理》由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jquery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jquery中的实现技巧和...
jquery中data的案例,获取同一标签内的数据,以及移除标签内的数据
非常详细的jquery文档,其全称是锋利的jquery
jQuery源码解读,jQuery源码解读
《深入PHP与jQuery开发》是PHP与jQuery结合的经典之作。书中首先概括了jQuery和PHP的经典特性,随后详细阐述了如何高效地结合两种技术为应用构建高度交互的用户界面。《深入PHP与jQuery开发》共讲述4部分内容,分别...
深入PHP与jQuery开发是PHP 与jQuery 结合的经典之作。《深入PHP与jQuery开发》首先概括了jQuery 和PHP 的经典特性,随后详细阐述了如何高效地结合两种技术为应用构建高度交互的用户界面。《深入PHP与jQuery开发》共...
深入解析jquery架构设计与实现原理》首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jquery的工作原理有大致的印象;进而通过“构造jquery对象”章节分析了构造函数jquery()的各种用法和内部...
jQuery数据列表新增或修改删除代码
jQuery去读取json的数据非常非常方面而且大大提高了用户界面的可读性,提高了读取的效率,比读xml文件更加方面
Jquery数据绑定分页源码
JavaScript and jQuery for Data Analysis and Visualization 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
table 绑定数据 jquery 分页 table 绑定数据 jquery 分页 table 绑定数据 jquery 分页
程序员必备:Jquery数据分页,实现数据库中的数据的分页。这种分页技术可以实现无刷新更新页面。用起来方便灵活。用户体验较好。
NULL 博文链接:https://hyj1254.iteye.com/blog/586984
解读jQuery插件开发流程_.docx
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...