说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

[探讨] 是用jQuery框架还是自造车轮呢?

HTML文档下载 WORD文档下载 PDF文档下载
日前,寒冬winter在博客园的一篇关于《从jQuery谈库与框架的设计之优劣》的文章引发了众多开发者们的激烈探讨,那么究竟是用jQuery框架还是自己造车轮呢?对此,网友们各抒己见。CSDN摘取了部分精彩评论,我们一起来探讨下。

jQuery是业内知名的JavaScript框架,它是轻量级的JS库,兼容CSS3,还可兼容各种浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且轻松为网站提供AJAX交互。jQuery一大优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。它的实现和设计可以说代表了JavaScript界最高的水平。


日前,寒冬winter在博客园的一篇关于《从jQuery谈库与框架的设计之优劣》的文章引发了众多开发者们的激烈探讨,文中他分别从解决问题、命名、接口设计、耦合四个方面来以jQuery为例总结库与框架设计的原则和优劣判断。

在谈到解决问题时,他例举了一个框架案例,他把这个库称为四则运算。

function add(a,b) {    return a+b;}function mul(a,b) {    return a*b;}function minus(a,b) {    return a-b;}function div(a,b) {    return a/b;}

这个库的API简洁优美,实现的更是优雅无比,它把四则运算统一成了函数形式,使得我们的开发更加方便。最强大的是,这个做法使得四则运算支持函数式编程,比如:

function acc(a,b,f) {    var jieguo = a; //http://weibo.com/2178807082/zk1kOcMPU    for(var i = 1; i<b; i++) {        jieguo = f(jieguo,a);    }    return jieguo<span style="line-height: 1.45em;">}</span>

这样,通过acc函数,我们可以轻易实现n次方运算,这正是函数式编程之美。

举这个例子是为了告诉大家,一个框架/库其实可以不需要解决任何问题——只要你会乱用概念、自吹和哄骗新手就够了。

下面我们来看看一个非常成功的框架——jQuery解决的问题,让我们来看看jQuery首页的"Brief Look"中给出的第一个例子。

DOM Traversal and Manipulation

$( "button.continue" ).html( "Next Step..." )
嗯,没错,jQuery希望帮助我们解决遍历DOM的问题,如果没有jQuery,我们大概要写一个traversal函数了。

function traversal(node, f) {    f(node);    if(node.children.length) {        for(var i = 0; i<node.children.length;i++)            traversal(node.children[i],f);    }}traversal(document.body,function(element){    if(element.tagName=="button" && element.className.match(/continue/)) {        element.innerHTML = "Next Step...";    }})

traversal这个函数真的是超麻烦不是么?竟然有175个字符呢!使用起来也有166个字符,用了jQuery之后,只要45个字符就可以搞定呢!好神奇!

好吧原谅我刚才把思维模式切换到了"write less, do more"模式,jQuery正是通过一个字符一个字符地节约程序员的工作量来达到这一伟大目标的。

压缩后仍达97k的jQuery竟然帮助我们少写了这么多代码,好神奇啊!这正是库/框架设计的要点,那就是"没有问题创造问题也要解决问题!"


那么究竟是用jQuery框架还是自造车轮呢?对此,网友们各抒己见。CSDN摘取了部分精彩评论,我们一起来探讨下。

@寒冬winter发表微博补充:jQuery当时硬从prototype嘴里啃下来的空间,yui一直不温不火,mootools两是prototype的改良主义,dojo一直挺烂但是有死粉,ext凭借差异化杀出血路。jq成功背后原因很复杂,多方因素。

@朴灵表示:@寒冬winter 和@玉伯也叫射雕 两个的观点都是对的。我曾经也黑过jQuery,原因是菜鸟太多,连jQuery都用不好,代码里满屏的$符号。实际角度赞同玉伯,菜鸟连$都写不好,自己写不是更糟吗?这里解释了为什么jQuery是事实上最好的DOM库。

@jQuery小组对此回复:JQ的设计更多的是出于在功能、扩展性、代码量上的平衡,很多似乎已模式化的思维并不一定要照搬到前端的开发场景中。

@IT技术精研院:优秀的框架设计,应该为整个流程做减法,而不是粗糙的叠加。code less, do more. 像JQuery这样优秀的框架设计应该被融入到下一代的HTTP规范中。

@一斯追求:JQuery确实是很强大的嘛,几十k的文件大小有那么强悍的功能实属不易,操作网页元素的时候省去了不少麻烦,尤其是实现Ajax效果的时候,有了它就是有了把利器啊,不然手写代码去建对象,自己post去请求还不把人给累死啊,还有JSon,我也夸一下,给力!

@程序猿小卡:1、jQuery神奇的多功能着实让人无力吐槽,用着挺爽的,但对于代码维护来说是个噩梦(jQuery的源码里到处是这种类型的多功能方法,印象中有个方法有7个参赛数);2、关于庞大的jQuery,已经到了压缩后还有97k的程度了?!现在已经可以做到按需模块拆分了(好吧我承认我其实没用过),所以这个问题应该没那么严重。

@超然台上仙认为:感觉jQuery弄得这么大很多都是在考虑兼容性的问题,如果能够使用最新的API肯定也不会这么复杂。另外jQuery的API确实挺好用啊,至少很容易懂。

@zegia_林并不赞成其观点:为了一个小功能而去引用庞大的jquery显然不值得,各种类库有各自的适用场景吧。

@根正苗红葫芦藤:噗,高端黑啊,无力吐槽ing。用框架主要是为了代码结构稳定、维护容易、知识互用性强。前端们太常写寿命不超过一年的玩意啦,偶等企业开发都是一用很多年2的,不好处处自造輪子的。

最后,用@郑银辉-小哥的话总结:每个框架都有其适合的场景,JQ功能丰富,文档详尽,易学易用,同时有众多插件,对于多数入门级开发者而言,的确是“必不可少”的。当然,局限性也非常明显,毕竟JQ是06年开发的,前端领域已经发生了很大的变化,而JQ的主干并没有变化,只是枝叶繁茂了点而已。

此外,网络上也不少兄弟高喊JQuery如何不好看的,然后再造个小JQuery,代码原封不动copy改个名就觉得革命面貌焕然一新的那种。

对此,各位网友你们是怎么看待的呢,欢迎与我们讨论。

更多精彩内容,欢迎@研发频道微博参与互动。

在VB中实现位图的透明放置 在VB中使用数据窗体设计器插件 在VB中制作单独程序封面的两种方法 在VB中制作透明按钮 在Visual Basic中如何拖动窗体或控件 在Visual Basic中显示动态运行进度 在菜单中加入图标 -VB资料 在程序中调用关闭Windows对话框-VB资料 在任务栏中显示无边框窗体的图标-VB资料 在系统菜单上添加自定义菜单项 -VB资料 在运行时动态生成多个相同的控件?-VB资料 在最小化状态时提供提示 -VB资料 暂时禁止窗口更新-VB资料 VB怎样得到文本框(TextBox)中的文本行数? 制造出透明的Form -VB资料 VB制作半透明窗体和形状不规则的窗体 VB制作方向按钮 VB制作渐变的窗口背景色 字体闪烁 -VB资料 自动改变控件大小-VB资料 自制IE风格按纽控件-VB资料 VB6.0中通过MSChart控件调用数据库 用VB6实现动态增减控件 ActiveX控件的创建-VB资料 ADO控件和DATA控件的冲突(不能共存)的解决方法-VB资料 Combo的自动查询技术 -VB资料 DirectX7.0使用心得(1) -VB资料 DirectX7.0使用心得(2) -VB资料 DirectX7.0使用心得(3) -VB资料 FSO对象模型在VB中的应用 MsComm 控件的文字传输范例 -VB资料 在dw中,怎样才能使用vs.net编写的网页正常显示??在线等待 请教关于VBA在WORD工具栏中的问题 win2000服务器启动输入密码后不久自动重新启动?怎么修复?系统还没有完全启动完。 C++builder精确到二位有效小数用什么函数????在线等候!!!! 急急急!现在想把状态栏放大,里边的字也随之放大! 我做了一个用户控件始终找不到不知道是什么问题,请大家帮忙帮忙. 寻找HUST计算机系大三.大四或研究生,有一事相求! linux下有什么好的java IDE吗? 如何组建电脑部!!!! Java如何Debug? 谁有关于Microsoft.XMLHTTP的详细使用手册 !!!急急!现在想把状态栏放大,里边的字也随之放大 请推荐几本学习sql-server的好书!!! 求助:sybase central 3.2 for ASE12.5 的问题?? 关于第二个硬盘的问题 请问我要开发一楼房的三维动画展示(象游戏一样) 哪位大哥知道哪儿可以下载四级模拟题或书籍 Bjarne Stroustrup 怎么念?有高手能给出音标吗?100分在线等待! 神秘的芭蕾舞鞋……《非人勿进!!!》¥%……·%·¥%·#¥%#·¥#@$%$#^%^%$$#@ 怎样做一个自己的DBNavigator? =====关于CDialog的一个简单问题===== 急救!子窗体问题!在线等待 如何把程序窗口显示在其他所有程序的前边 dbengine error: invalid blob length? 数据集打开问题 严重的问题???? 一个问题: 一个小问题,在线求助! 神秘的芭蕾舞鞋……¥%……·%·¥%·#¥%#·¥#@$%$#^% 无法进入系统,救救我吧 菜鸟问题,送分了!!! 得分小问题 小问题,请熟悉InterBase的大大进来看看。 做一个分布式的例子时的问题 大家帮我看下这几句问题到底出在哪里呀!!!!!!!谢谢 连接数据库的疑问,盼望解答!! 什么叫作实例? 菜鸟问题 十万火急:MDI的一个问题?????????在线等待!!!!!! 调查一下用汇编语言开发的工资如何?(深圳 ) 有关Builder版的兄弟定期进行网上技术交流的倡议书! 急!关系到我是否找到工作,请回答 如何根据Form的大小调整控件的大小 闪盘的另一个分区不能用了!!在线 连接数据库的疑问,盼望解答!! 急!急!急!请教一个共享的问题? 请问哪里有Class类和Method这两个类的说明呀!谢谢! 怎样打开CSDN电子版 请推荐一下有关于JAVA,JSP,JAVASCRIPT相关的好书 汽车与电脑谁重要(转) 转让 全新飞利普 820 彩屏手机一部(个人) The cat ( ) in the ( ).It is ( ) of the box. 蚁能组什么词? Where are the students?They___(study) in the classroom He loves____(tell)jokes 填入适当的英语单词 1.—-is the cat?It's in the box. 蚁可以组什么词 what will you do后面加什么介词what will you do ___these stamps?A.in B.by C.of D.with The cat --------in the --------.It’s in --------of the box. What about__?A.eat a pear B.a bottle of milk 选择 Wish you to do well in the English exam_a light heart.A.onB.withC.without希望能帮我解答, [英语阿英语]讲一讲few ,a few,little,a little后分别加什么词 有聊斋志异 狼的白话文吗?狼三则的第2则的白话文扩写白话文 英语;We have computer lessons___Friday afternoon.____your mother free on Sunday? 乳化油的基本知识 125克是1千克的几分之几 wo wo wo ye yi ye酒吧里中场经常放的英文的女声唱的有谁知道推荐一下啊最好能直接和空间连接的 去除 乳化油怎样去除手上 由于长时间泡在乳化油水里形成的一层死皮?因为工作原因 使用外圆磨床必须用切削液 但是又会产生死皮 2500千克=几分之几吨七分之二x=4 x-三分之一x=十七分之七 what about something ____(eat)用括号里的适当形式填空 甲·乙两车同时从A地开往B地,当甲车行了全程的2分之一时,乙车正好行了全程的5分之2,当甲车到达B地后,距B地还有30千米,求A·B两地之间的路程乙车距B地还有30千米 求AB两地之间的路程 最好说 125千克=几分之几吨 改正:What about something eat? Do you like to play volleyball?否定回答 which do you like best,the red one ,theblack or the green?中best前为什么不加the是因为是like sth.best 献你一束鲜花中女服务员为什么向失败者献花? the lillle cat in the box划线部分是in the box 对划线部分提问.They heard a whisper when they were in the park.划线部分是a whisper (对划线部分提问)10.He didn’t have lunch at school.(改为陈述句)11.It was fine yesterd DO you like playing _____ game?Yes.It's ____interesting one.空格填什么冠词? (献你一束鲜花)文中提到失败和胜利同样重要,为什么文中提到失败和胜利同样重要,为什么?但他的......希望 的灯全关上了。 9颗树,种10行,每行种3颗,怎么种? Do you ___ if I don't like game shows .A.thinkB.liveC.likeD.mind 《献一束鲜花给你》活泼反义词是从文中找的 花重锦官城当中“重”的读音 You dont like playing compute game,do you?怎么回答 冯骥才 献你一束鲜花 主人公是谁 奶酪老板卖的是什么 Can I have one more cake? My siter is too young.she can't put on her clothes by herself的同义句 Do you want to_____a trip plan on the computer,Beety?Yes,I do快 张大伯从报社以每份0.4元的价格购进了a份报纸 以每份0.5的价格售出了4/5a份报纸,余下的按0.2/份退回报社盈利多少 Do you like it?Yes,I-----.A Look B Listen C See do you want _the red hat —yes ,i do .a、buy b 、buys c、 to buy d 、take 张大伯从报社以每份0.4元的价格购进了a份报纸,以每份0.5元的价格卖了4/5a份报纸,剩下的每份0.2元退回问赚了多少? ()We missed ___ the film when it was ___ at the local cinema.A seeing;in B to see;on C seeing;on D to see;in 用蚂和蚁组词用蚂和蚁能组几个词 养爬虫用的活体蟋蟀的学名是什么啊?拉丁名呢》 He____the students very much and the students like him,too填1个正确的单词 When is to very she go busy people out dinners 连词成句 They just cleaned the windows.So the room looks_.A.more bright B.much brighterThanks very much. FEW后加名词单数还是复数 He had no sooner returned than he bought a house and went to live there这句话什么意思no sooner than又表示什么? 什么是奶酪效应 求《动手做报》海洋知识竞赛题全部答案……求…… He had no sooner returned than he bought a house and went to live there这个bought前面加个had可以吗 一堆煤2500千克,用去了20%,还剩下多少千克? 深圳市海洋知识竞赛题今天下午就要考了a!有关海洋知识的竞赛题(如问答题等) he had no sooner returned than he bought a house and went to live there.里的live为什么不加ingwent是动词后面再有动词不是要加ing吗? When i woke up this morning,i found_______ A.it is raining B.it was raining C.the sky was raining为什么C不可以选 求海洋知识竞赛答案1 下列探险家中,在北极探险的过程中献出了生命的是( ).A、阿蒙森 B、斯科特 C、戴维斯 D、富兰克林2 第二次世界大战中,美国的一艘航空母舰运载了25架B-25轰炸机执 请把'He had no sooner returned than he bought a house.'改为含有'hardly……when'的句子, Much to my delight,when I got back into my office,I found all the lights in it____.1.finished repairing2.turning up3.fixed up4.going out为什么选3不选别的 全国海洋知识竞赛 怎么写 9 在沿海国专属经济区或大陆架上进行的科学研究活动,应遵循( )的约定.A、无须征得任何一方同意 B、须征得联合国准许 C、向沿海国告知后可以进行 D、须沿海 澳国防部称愿“将功赎罪”“甲壳虫”主唱故居获拍77万美国男子手机“防弹护主”美情报高官供出欧洲盟友美国拒绝回应“在北京、上海等地设监听津巴布韦灵车撞上油罐车至24人死亡 联合国发言人说美国已保证不会对联合国外媒曝美国安局秘密窃取雅虎和谷歌数据墨西哥警察路边与女子发生性关系视频网解放军三大舰队在西太平洋完成三轮实兵孕妇就医多次碰壁 医生:医患关系紧张美国拒绝回应“在北京、上海等地设监听乡镇卫生院腐败高发 卫生院长称不收回富阳法院首推分段倒逼执行机制对付“老新加坡画家上海展示新奇“手机画”外媒对中共三中全会怎么看?问题越来越多 咨询越来越少 自杀干预温州多家典当行集体看走眼 假首饰“骗海上丝绸之路:周边外交的动脉与桥梁强风暴抵达俄罗斯圣彼得堡惊涛拍岸德媒:美在全球设点监控政府通讯苏格兰公投结束 统一派胜利葛兰素史克就行贿事件致歉 称将坚持在云南广大铁路隧道坍塌事故获救4人将接美国望联合国出台反恐新决议 俄表示赞长江洪峰过境重庆主城 菜园坝竹木市场东京推出媒体艺术展 轻触墙壁感受花开港媒:白宫反恐“新战略”是拉人落水借第十届河阴石榴文化节开幕 石榴王拍卖葛兰素史克总公司向中国人民的致歉声明日本一中学教师讲授南京大屠杀史实 竟外银:中国选择“折中”货币政策提升经美国16岁少年街头遭枪杀 警方侦探展安监总局:22个重点县要大幅压减烟花第三届中朝经贸文化旅游博览会十月中旬美国一律师ps与明星合影遭起诉 网友中国代表呼吁国际社会与西非国家共抗埃国际捕鲸委员会未通过大西洋南部建立保普京放言威胁北约:可2天内占领波兰等本源的东西绝对不能丢 看传统二人转有悉尼一华人男子停车场倒车坠亡 遗孀获日本一中学教师讲授南京大屠杀史实 竟
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘