7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

47
E SE VOCÊ NÃO USASSE JQUERY? E SE VOCÊ NÃO USASSE JQUERY? http://bit.ly/esevcnaousasseojquery

Transcript of 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

Page 1: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

E SE VOCÊ NÃO USASSE JQUERY?E SE VOCÊ NÃO USASSE JQUERY?

http://bit.ly/esevcnaousasseojquery

Page 2: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

VICTOR CAVALCANTEVICTOR CAVALCANTEDesenvolvedor Web Full StackPalestranteMembro do conselho Jedi da Lambda3Microsoft MVP de ASP.NET

[email protected]@vcavalcante

Page 3: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

POR QUE USAR?POR QUE USAR?

Victor Cavalcante @vcavalcante

Page 4: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

VAMOS VOLTAR NO TEMPOVAMOS VOLTAR NO TEMPO

Page 5: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AGOSTO 2006 - 1.0 - 3.5KBAGOSTO 2006 - 1.0 - 3.5KBInternet Explorer 6 (desde 2001)Opera 9Netscape 8.1Firefox 1Safari 2

Victor Cavalcante @vcavalcante

Page 6: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

Victor Cavalcante @vcavalcante http://bit.ly/trendsjquery

Page 7: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

JULHO 2009 - 1.3 - 21KBJULHO 2009 - 1.3 - 21KBInternet Explorer 8Opera 10Netscape 9Firefox 3.5Safari 4Chrome 3

Victor Cavalcante @vcavalcante

Page 8: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

DIVERSOS PROBLEMASDIVERSOS PROBLEMAS

Victor Cavalcante @vcavalcante

Page 9: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

QUER PEGAR UM ITEM PELA CLASSE?QUER PEGAR UM ITEM PELA CLASSE?

function getElementsByClass(searchClass,node) { if ( node == null ) node = document; var classElements = [], els = node.getElementsByTagName("*"), elsLen = els.length, pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;

for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; }

Victor Cavalcante @vcavalcante

Page 10: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

CLASSE COM JQUERYCLASSE COM JQUERY

$(".muitoSimples")

Victor Cavalcante @vcavalcante

Page 11: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

ADICIONANDO UM EVENTOADICIONANDO UM EVENTO

if (redButton.addEventListener) { // all browsers and IE>=9 redButton.addEventListener ("click", OnRedClick, false); } else { if (redButton.attachEvent) { // IE before version 9 redButton.attachEvent ('onclick', OnRedClick); } }

Victor Cavalcante @vcavalcante

Page 12: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EVENTO COM JQUERYEVENTO COM JQUERY

$("#redButton").click(onRedClick)

Victor Cavalcante @vcavalcante

Page 13: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AJAXAJAX

FORMULÁRIOSFORMULÁRIOS

MANIPULAÇÃO DO DOMMANIPULAÇÃO DO DOM

ANIMAÇÕESANIMAÇÕES

PLUGINSPLUGINS

Victor Cavalcante @vcavalcante

Page 14: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

E HOJE?E HOJE?

Victor Cavalcante @vcavalcante

Page 15: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

OUTUBRO 2014 - 2.1 - 83KBOUTUBRO 2014 - 2.1 - 83KBInternet Explorer 11Opera 25Firefox 31Safari 7Chrome 37

Victor Cavalcante @vcavalcante

Page 16: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EU REALMENTE PRECISO DO JQUERY?EU REALMENTE PRECISO DO JQUERY?

Victor Cavalcante @vcavalcante

Page 17: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

Victor Cavalcante @vcavalcante http://youmightnotneedjquery.com

Page 18: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

Victor Cavalcante @vcavalcante

Page 19: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante
Page 20: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

TITLE TEXTTITLE TEXT

Victor Cavalcante @vcavalcante http://bit.ly/jquerybrowserbugs

Page 21: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

TITLE TEXTTITLE TEXTSUBTITLESUBTITLE

Victor Cavalcante @vcavalcante

by @ElijahManor

Page 22: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

Victor Cavalcante @vcavalcante

by @ElijahManor

Page 23: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

O QUE VOCÊ TERIA QUE FAZER SE VOCÊO QUE VOCÊ TERIA QUE FAZER SE VOCÊNÃO USASSE O JQUERY???NÃO USASSE O JQUERY???

Victor Cavalcante @vcavalcante

Page 24: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

SELECIONANDO ELEMENTOSSELECIONANDO ELEMENTOS$("#datepicker");

$("input");

$(".date");

$("input.date");

Victor Cavalcante @vcavalcante

Page 25: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

PARA SELECIONAR ELEMENTOSPARA SELECIONAR ELEMENTOS$("#eventos");document.getElementById("eventos");

$("form");document.getElementsByTagName("form")

$(".data");document.getElementsByClassName("data");

$("input.cpf");document.querySelectorAll("input.cpf"); //Nodelistdocument.querySelector("div.cpf"); //FirstElement

Victor Cavalcante @vcavalcante

Page 26: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

VAMOS ANALISAR A PERFORMANCEVAMOS ANALISAR A PERFORMANCE

Victor Cavalcante @vcavalcante http://bit.ly/jqueryperf

Page 27: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

VAMOS ANALISAR A PERFORMANCEVAMOS ANALISAR A PERFORMANCE

Victor Cavalcante @vcavalcante http://bit.ly/jqueryperf

Page 28: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EACHEACH$("span.nome").each(function(index, element) { $(element).text("Olá: "+ index);});

Victor Cavalcante @vcavalcante

Page 29: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EACH - OPÇÃO 1EACH - OPÇÃO 1

//jquery$("span.nome").each(function(index, element) { $(element).text("Olá: "+ index);});

//nativovar nodeList = document.querySelectorAll("span.nome");var i;for(i= 0, len= nodeList.length; i< len; ++i) { nodeList[i].innerText= "Hello: "+ i;};

Victor Cavalcante @vcavalcante

Page 30: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EACH OPÇÃO 2EACH OPÇÃO 2//jquery$("span.nome").each(function(index, element) { $(element).text("Olá: "+ index);});

//nativovar nodeList = document.querySelectorAll("span.nome"),elems= Array.prototype.slice.call(nodeList);elems.forEach(function(element, index) { element.innerText= "Olá: "+ index;});

Victor Cavalcante @vcavalcante

Page 31: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

EACH OPÇÃO 3EACH OPÇÃO 3//jquery$("span.nome").each(function(index, element) { $(element).text("Olá: "+ index);});

//nativofunction $t(selector) { return [].slice.call(document.querySelectorAll(selector));}$t("span.nome").forEach(function(element, index) { element.innerText= "Olá: "+ index;});

Victor Cavalcante @vcavalcante

Page 32: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AJAX OPÇÃO 1AJAX OPÇÃO 1

var xhr= new XMLHttpRequest();xhr.open("POST", "/caminho/json/", true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onload= function() { if(this.status=== 200) { alert(this.responseText); }};xhr.send("category=books&sort=asc");

Victor Cavalcante @vcavalcante

Page 33: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AJAX OPÇÃO 2AJAX OPÇÃO 2

var formData= new FormData(), xhr= new XMLHttpRequest();formData.append("category", "books");formData.append("sort", "asc");

xhr.open("POST", "/caminho/json/", true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onload= function() { if(this.status=== 200) { alert(this.responseText); }};

xhr.send(formData);

Victor Cavalcante @vcavalcante

Page 34: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AJAX OPÇÃO 3AJAX OPÇÃO 3

var form = document.getElementById("myForm");var formData= newFormData(form);var xhr= newXMLHttpRequest();

xhr.open("POST", "/caminho/json/", true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onload= function() { if(this.status=== 200) { alert(this.responseText); }};

xhr.send(formData);

Victor Cavalcante @vcavalcante

Page 35: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

AJAXAJAX

Page 36: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

E NO MOBILE? VALE A PENA?E NO MOBILE? VALE A PENA?

Page 37: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

TEMOS QUE CONSIDERARTEMOS QUE CONSIDERAREstamos na rede 3G/4G (será?)Temos bateria muito ruim

Cada parse de jQuery gasta 4 joules (0,02%)5000 parses de jQuery gasta 1 cargaWho Killed My Battery

Page 38: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

PARSE TIMEPARSE TIME

http://bit.ly/parsetimejquery

Page 39: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

ALTERNATIVASALTERNATIVASZepto

9.1k gzippedIf you use jQuery, you already know how to use Zepto.IE10+ support

Victor Cavalcante @vcavalcante http://zeptojs.com

Page 41: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

O PROBLEMA É SÓ O TAMANHO?O PROBLEMA É SÓ O TAMANHO?Dá para ser menor!

Victor Cavalcante @vcavalcante

Page 42: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

CUSTOM BUILDCUSTOM BUILD> git clone git://github.com/jquery/jquery.git> > npm install -g grunt-cli bower> > grunt -version && bower -version> > cd jquery&& npm install> > grunt>> grunt custom:-sizzle,-ajax,-css,-deprecated

https://github.com/jquery/jqueryVictor Cavalcante @vcavalcante

Page 43: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

CUSTOM BUILD FACILITADOCUSTOM BUILD FACILITADO

Page 44: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

MÓDULOSMÓDULOSevent event/aliasoffsetwrapexports/amdcore/readydeferredsupportsizzle

ajax

ajax/xhrajax/scriptajax/jsonp

cssdeprecateddimensionseffects

Victor Cavalcante @vcavalcante

Page 45: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

E AÍ? EU PRECISO OU NÃO DO JQUERY?E AÍ? EU PRECISO OU NÃO DO JQUERY?

Victor Cavalcante @vcavalcante

Page 46: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

DEPENDE DO SEU CENÁRIO!DEPENDE DO SEU CENÁRIO!

Victor Cavalcante @vcavalcante

Page 47: 7Masters jQuery - E se você não usasse jQuery?, com Victor Cavalcante

DÚVIDAS, CRÍTICAS OU SUGESTÕES?DÚVIDAS, CRÍTICAS OU SUGESTÕES?

@VCAVALCANTE@[email protected]