jQuery是风险的

作者: 关于计算机  发布:2019-11-24

【翻译】jQuery是有毒的,jquery

原文:
(第三遍翻译,望我们多商量指正卡塔尔

说说库和框架的分别?

  • 库是将代码会集成的一个出品,供技士调用。面向对象的代码组织情势而成的库也叫类库。面向进程的代码组织格局而成的库也叫函数库。
    在函数库中的可径直行使的函数叫库函数。开拓者在运用库的时候,只必要接受库的大器晚成部分类或函数,然后继续贯彻团结的功能。

  • 框架则是为消除贰个(豆蔻梢头类)难题而开荒的制品,框架客商平常只必要动用框架提供的类或函数,就可以兑现全数效应。能够说,框架是库的进级版。
    开采者在行使框架的时候,必需接受这一个框架的满贯代码

 jQuery是加害的

  嗨,小编总想写一个“X”是凌虐的帖子。

在开端写前,笔者想说jquery 比很大程度上推动了前面一个的前进。它让开采职员完毕了原先不敢想象的事体,并督促浏览器开采商做他们当然就该做的事。(未有jquery大家推测今后还不恐怕用到document.querySelectorAll卡塔尔国对于这二个不协理现成新技能的IE8及其以下浏览器jQuery如故很有十分重要。

  但无论怎么说那叁个低档浏览器毕竟是少数,比很多开拓人士无需扶助只占相当的小分占的额数的老版本浏览器。别忘了还应该有那个非职业开拓人士:学子和钻研人口,他们非但没有必要援助低版本浏览器,并且只需四个浏览器帮忙就够了。如您所愿,在学术界人人都津津乐道于选择网络开放平台的新本事,对啊?但是作者却从未见过jQuery在产业界这么优良。为啥?因为分明,他们尚马时间或野趣追随互联网开放平台的新颖动态。他们不知底她们须求怎样的jquery,引致他们只是独自的运用jquery。但是那并非自己放弃jquery的唯少年老成理由。

jquery 能做怎么样?

write less ,do more

  • HTML文书档案遍历和拍卖
  • HTML 元素选拔、操作
  • HTML 事件函数
  • 动画
  • Ajax
  • 跨浏览器

没错,你或者真的没有必要它

  作者当然不是首先个提议jQuery的重视性程度影响您原生js的力量,由此作者不想浪费时间重复外人以前所写,你只需访谈以下链接:

  你可能无需jquery

  你无需jquery!

  你实在须要jquery吗?

  脱离jquery编写javascript的10个技巧

...还会有多数,你只需谷歌时而“you don’t need jQuery”你将开采更加多。笔者也不再花时间赘述jQuery文件大小以至原生js方法有多高效,这个我事先都讲过。前天,笔者想说二个不经常被聊到的主旨。

 

jquery 对象和 DOM 原生对象有何差别?怎么着转变?

  • jQeury对象是经过jQuery的API构造的jQuery对象(类数组卡塔 尔(英语:State of Qatar),具备和睦的性情和议程。
  • DOM原生对象是经过DOM的API构造的DOM对象(DOM节点卡塔 尔(英语:State of Qatar),也具有自个儿的本性和办法。
    var a = $('.name');
    var b = document.querySelector('.name');
    console.log(a);
    console.log(b);
    console.log(a[0]);//转化为dom对象
    console.log($(b));//转化为jQuery对象

但那并非割舍它的最大原因

  为了防止增添本地成分的原型,jquery使用它本身的包裹对象,增添本地对象在过去是三个巨大的 不,不。不止归因于潜在冲突,还会有低版本IE浏览器内部存储器泄漏。因而当您运维$(“div”)时回来的并非四个成分援用或贰个节点会集而是贰个jQuery对象。那象征对于,jquery对象的完成格局完全分裂于三个DOM成分的引用、贰个数组或任何品类的节点列表。不过,对于这几个本地对象,犹如jquery试图提收取她们相仿,你总要不能不管理他们,哪怕他们包裹在$()中。举个例子:当回掉函数通过jQuery的bind()方法调用时上下文就是叁个对HTML成分的征引并非jquery的风华正茂组对象。更别提你的代码照旧多源的,有个别想当然是jQuery代码,有个别则不是,最后代码总会混淆着jQuery对象、本地对象、节点列表,而那多亏地狱的初始。

  假如开采职员信守贰个命名法则:用变量包裹jQuery对象(小编认为在变量名尾部增添叁个$是广大的风度翩翩种卡塔 尔(阿拉伯语:قطر‎和地面成分,那将不再是个难点(但大家总是记不住规则,这里就先假定一个妙趣横生世界卡塔 尔(阿拉伯语:قطر‎可是,现实中并未那么多准则被遵守,结果正是对于目生代码的人来讲代码变得最为难懂。未来每一回编写代码都必要广大尝试和不当(“哦!那不是二个jQuery对象,作者要用$()来包裹它”只怕“哦!那不是一个因素,作者要用[0]来赢得当中的因素”卡塔尔国 为了幸免混淆,开辟职员编码时常防御性的用$()包裹全数东西,因而总览代码,相仿的变量经过$()的再而三串包裹,同样的案由,那会变得很难重构别的jQuery代码,你点点滴滴被困住了。

  纵然如约了命名准则,也无法只用在jQuery对象上,你时常索要用到本地DOM方法或调用不归于jQuery而来自其于她脚本中的函数。异常快,多次折腾jQuery对象弄拿到处都以,把你的代码搞的很乱。

  除了这些之外,当您往代码库中增加代码的时候,你往往会用$()来包裹每一种元素或节点列表。因为您不知晓您获取了如何的输入。所以被困住的不独有是你和谐,你今后为同多个代码库所写的代码也被困住了。

  得到其余带有jQuery信任性的即兴脚本,你从未自身写并意欲重构它,那样它就没有必要jQuery。笔者敢说,你会开掘你的第一难点将不会是怎么着改换职能利用本地APIs, 而是精通那到底是怎么贰遍事。

 

jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有何效果与利益?推荐使用哪一类?使用on绑定事件选择事件代理的写法?

  • 根底语法是:$(selector).action()
    个中selector是选择器名称,和css接收器雷同,action是jquery对象的主意。
  • bind jquery1.7版本前可用
    $('a').bind('click', function() {
    alert("That tickles!")
    });
  • unbind
    $('a').unbind('click');//消除元素的平地风波绑定
  • delegate
    $('#container').delegate('a', 'click', function() {
    alert("That tickles!")
    });
    JQuery扫描文档查找$(‘#container’),并运用click事件和’a’那生机勃勃CSS接受器作为参数把alert函数绑定到$(‘#container’)上。任哪天候借使有事件冒泡到$(‘#container’)上,它就翻开该事件是不是是click事件,甚至该事件的靶子成分是或不是与CCS选用器相相配。如若三种检查的结果都为真的话,它就举办函数。(速度比live快)
  • live
    $('a').live('click', function() {
    alert("That tickles!")
    });
    JQuery把alert函数绑定到$(document)成分上,并动用’click’和’a’作为参数。任哪天候借使有事件冒泡到document节点上,它就翻开该事件是还是不是是多少个click事件,以致该事件的靶子元素与’a’那后生可畏CSS接纳器是不是相称,借使都以的话,则实践函数。
  • on 绑定事件(推荐)
    .on( events [,selector ] [,data ], handler(eventObject)
    $( "#members" ).on( "click", "li a", function( e ) {} );
  • off 死灭事件绑定
    .off( events [, selector ] [, handler ] )

贰个通向原生JS的笃定门路

  当然,以后众多函数库供给jQuery,就好像这几天本人在推特上所说的那么,假使您躲开jQuery那么以为你疑似个数据素食者。当然,那并不意味着你必须要要利用它。当好的非jQuery代替品可用的时候,函数库也将会被代替。

  相像的,大繁多函数库的写法不必要用$作为jQuery的外号。用jQuery.noConflict()方法可校正暗中认可的$並且你也可改成此外你看着美丽的暗记,例如,受命令行API的开导,笔者平日定义那一个扶持函数:

//返回匹配到expr的第一个元素
//查询范围限制在container的后代中
function $(expr, container) { 
    return typeof expr === "string"? (container || document).querySelector(expr) : expr || null;
}

//以数组的形式返回所有匹配到的expr
//查询范围限制在container的后代中
function $$(expr, container) { 
    return [].slice.call((container || document).querySelectorAll(expr));
}

 

  其他,小编觉着在您每一遍敲出jQuery来取代$时你会虚构假使实在无需,是或不是还要如此过度的运用它,或者本身猜错了 。

而且,倘让你欢悦jquery API 但又不赏识她的重合,那么您能够思谋采用Zepto。

很显然,大家的标题由此可见带有开玩笑的意味,不过,这是互连网,未有啥是醒指标。所以在此边自身很清楚Eric的经文文章会特别不以为然这种标题。

原文: (第二次翻译,望我们多争辨指正卡塔 尔(阿拉伯语:قطر‎ jQuery是加害的 嗨,笔者...

jquery 如何呈现/隐蔽成分?

$(selector).hide(speed,callback);
$(selector).show(speed,callback);

可选的 speed 参数规定隐讳/突显的进程,能够取以下值:"slow"、"fast" 或纳秒。
可选的 callback 参数是躲藏或展现成功后所实行的函数名称。
实质上是改良dom.style.display属性

jquery 动漫怎么着运用?

$(selector).animate({params},speed,callback);

必备的 params 参数定义产生动漫的 CSS 属性。
可选的 speed 参数规定职能的时间长度。它能够取以下值:"slow"、"fast" 或微秒。
可选的 callback 参数是卡通实现后所举办的函数名称。

怎么着设置和获得成分内部 HTML 内容?如何设置和获得成分内部文件?

  • html获取 .html()
  • 文件获取 .text()
    括号内无参数是得到,有参数是更改内容。

哪些设置和获得表单顾客输入可能选用的原委?怎么着设置和拿到成分属性?

  • val() 设置或重临表单字段的值
  • attr() 设置或再次来到成分的天性

本文由今晚买四不像发布于关于计算机,转载请注明出处:jQuery是风险的

关键词:

上一篇:用仿ActionScript的语法来编排html5
下一篇:没有了