jquery源码解析(jquery源码实现原理)

大哥大姐,打扰一下,jquery源码解析(jquery源码实现原理)
最新回答
未央_离殇

2024-10-17 18:04:09

完全理解jQuery源代码,在前端方面算什么水平

依读了2周jQuery源码的人感觉来说,完全理解jQuery,就拿jQuery1.11这个团答缺版本10337行代码来说,水平已经很塌辩不错了。谦虚点说,已经入门。骄傲点,国内领先水平。但其码我感觉是js架构之路起行的第一步,完全理解源码,说明有独立构建或组织大型web前端框架的能举粗力和基础。然后看看完全理解jQuery是一个怎么样的状态。

jQuery怎么解析Json字符串

json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来毕陵镇介绍jquery解析json字符串方法。

一、jQuery解析Json数据格式:

使用这种方法,你必须在Ajax请求中设置参数:

1dataType:"json"

获取通过回调函数返回的数据并解析得到我们想要的值,看源码:

代码如下复制代码

jQuery.ajax({

url:full_url,

dataType:"json",

success:function(results){

alert(result.name);

}});

通常情况下,你可以从后台返回JSON数据,前台就交给jQuery啦,哈哈!!

jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不

需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为

例说

例1

代码如下:

代码如下复制代码

vardata="

{

root:

[

{name:'1',value:'0'},

{name:'6101',value:'北京市'},

{name:'6102',value:'天津市'},

{name:'6103',value:'上海市'},

{name:'6104',value:'重庆市'},

{name:'6105',value:'渭南市'},

{name:'6106',value:'延安市'},

{name:'6107',value:'汉中汪链市'},

{name:'6108',value:'榆林市'},

{name:'6109',value:'安康市'},

{name:'6110',value:'商洛市'}

]

}";

jquery

代码手粗如下复制代码

$.getJSON("http://sanic.cnblogs.com/",{param:"sanic"},function(data){

//此处返回的data已经是json对象

//以下其他操作同第一种情况

$.each(data.root,function(idx,item){

if(idx==0){

returntrue;//同countinue,返回false同break

}

alert("name:"+item.name+",value:"+item.value);

});

});

二、jQuery解析Json对象:

jQuery提供了另一种方法“parseJSON”,这需要一个标准的JSON字符串,并返回生成的JavaScript对象。让我们来看

看语法:

data=$.parseJSON(string);

看看它是如何运用的到实际开发中的:

代码如下复制代码

jQuery.ajax({

url:dataURL,success:function(results){

varparsedJson=jQuery.parseJSON(results);

alert(parsedJson.name);

}

});

深入解析jquery架构设计与实现原理pdf怎么样

jQuery是业界最流行的JavaScript库,其API非常精致和优雅,但是jQuery的源码却庞大且晦涩难懂,在本书开始写作时发布的1.7.1版本有9266行代码,涉及17个模块,读起来常常是一头雾水、有心无力。本书尝试对jQuery的源码进行系统、完整的介绍和分析,阐述jQuery的设计理念、实现原理和源码实现。

在2010年参与了一款卫星机顶盒用户界面的设计和开发,程序运行在机顶盒中间件供应商提供的一款定制浏览器上,在开发过程中,发现这款浏览器的行为类似于古老的IE5,各种缺陷和bug折磨得笔者苦不堪言,所以希望引入jQuery作为基础库,并开发一些通用组件和接口来简化开发过程,可是很快又发现这款浏览器对正则表达槐裂辩式的支持非常粗糙,导致选择器引擎Sizzle根本无法运行。此时,对jQuery进行简单改造已经满足不了需求。

然而令人惊艳的是,这款浏览器提供了与操作系统、文件系统、中间件、播放器、智能卡和卫星接收器等交互的JavaScriptAPI,例如,待机关机、文件读写、计费、卫星锁频、数据接收等。鉴于这种复杂的体系架构,以及对浏览器缺陷的完善也非短期可以完成,开始为这款机顶盒浏览器移植jQuery,从而开始了对jQuery源码的学习和分析。

从2011年6月开始,开始把心得和记录整理成《jQuery1.6.1源码分析系列》,陆续发表在程序员社区ITEye和博客园上,本书最初的内容也是基于这个系列而来的。《jQuery1.6.1源码分析系列》成体系但尚粗糙不堪,因此本书基于jQuery1.7.1几乎全部重写,在内容上更加完善和严谨。

本书适合初级、中级、高级前端开发工程师,以及对前端开发感兴趣的读者。

在阅读本书之前,读者应该初步掌握JavaScript、HTML、CSS的基础知识,初步掌握jQuery的使用,或者有其他语言基础。

如何阅读本书

本书共分为四大部分,首先介绍了jQuery的总体架构,然后分别分析了构造jQuery对象模块、底层支持模块和功能模块的源铅缺码实现。在阅读本书时,首先建议读者建立一个源码阅读和调试环境,在阅读过程中进行各种尝试和验证,加深对源码的理解;在阅读本书的每个章节前,建议读者先源兆仔细阅读相应的官方文档,并验证官方示例,掌握API的功能和用法。

第一部分(第1章)对jQuery的设计理念、总体架构和源码结构进行了介绍和分析,让读者对jQuery有整体的认识。

第二部分(第2章)详细介绍和分析了构造函数jQuery()的用法、构造过程、原型属性和方法、静态属性和方法。

第三部分(第3~7章)详细分析了底层支持模块的源码实现,包括选择器Sizzle、异步队列DeferredObject、数据缓存Data、队列Queue、浏览器功能测试Support。

第四部分(第8~14章)详细分析了功能模块的源码实现,包括属性操作Attributes、事件系统Events、DOM遍历Traversing、DOM操作、样式操作CSS、异步请求Ajax、动画Effects。

jQuery源代码看不懂,怎么办。。有没有解释jQuery源代码的书籍?

要不要阅读别人代码?

要。

阅读别人代码干什么?

提高自己的代码质量。

试图通过指返悄阅读别人代码找出代码的逻辑?

错误。

试图通过阅读别人代码找出想要实现自己的逻辑的代码?

正确,只有遵循了这个原则,才能实现物为唯渣我所用。

毫无目的去看别人代码不晕才世盯怪呢。

如何正确阅读jquery源码和jquery插件源码

1.jQuery里面有很多东西是出于兼容性,历史遗留。

比如.ready()之类的函数,为什么会很scroll有关,那是为了兼容某些ie。这种代码对于编程思想来说不仅没用,而且是杂音,你要筛选出来就得了解这段代码歼宏的变动,费心费力得不偿失。

2.jQuery里面的代码不一定是最优的,例如事件委托,每一次事件触发都要调用选择器,实际上是效率很低的。拿春但是我又比较懒,没有提交patch。

3.jQuery实际上很容易写出来一个barebonealternative,在使用的过程中多想,多思考多总结就可以了。

4.jQuery这类框架里真正有思维挑战性的东西不多,一半以上是堆代码而已,剩下的一点价值在于架构、抽象、扩展能力。

5.我有一句话与所有的同行分享:工程师让需求成为现实,优秀工程师化复杂为简单,顶尖工程师变不可能为可能;架构师掌握现在,优秀架构师展望未来,顶尖架构师创造时代。

jQuery的设计目的是,让前端工程师的工作更简单更轻松,但它并不适合所有的前端工程师,假如你的目标是成为优秀架构师、顶尖架构消改耐师的话,你在jQuery里也看不清未来。