SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Apresentação
● Ricardo Coelho
● Graduado em Ciência da Computação;
● Fundador do grupo PHP-Maranhão;
● Representante do Maranhão em eventos nacionais;
● Representante do Maranhão no PHP Brasil
Comunidades;
● Professor de Programação Web (Faculdade
Pitágoras);
● Auditor certificado NBR ISO/IEC 27001:2006
● Perito forense digital
● CTO da Nexy, empresa de auditoria de segurança e
tecnologia financeira com soluções SaaS em PHP.
Criando Plugins jQuery
Ricardo Coelho
Nexy Informática
J o quê?
O que é o jQuery?
Código Javascript Convencional
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('foo').innerHTML =
http.responseText;
}
}
http.send(null);
}
Código jQuery
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('foo').innerHTML =
http.responseText;
}
}
http.send(null);
}
$('#foo').load('test.txt');
Encadeamento
$('body')
.addClass('ninja')
.hide();
Porque criar um plugin?
Testes
SeletoresPacote
Reuso
GeneralizaçãoDevolver
à comunidade
Porque criar um plugin?
Testes
SeletoresPacote
Reuso
GeneralizaçãoDevolver
à comunidade
Fama e
Fortuna
Plugins existentes
4200+
jQuery UI, Forms, Masked Input,
JCarrousel, JCrop, JEditable, JsTree...
Em http://plugins.jquery.com você encontra
as seguintes categorias de plugins:
Ajax, Animation and Effects, Browser, Tweaks, Data, DOM, Drag-and-Drop,
Events, Forms, Integration, JavaScript, jQuery, Extensions, Layout, Media,
Menus, Metaplugin, Navigation, Tables, User, Interface, Utilities, Widgets,
Windows and Overlays
Criar plugins é tarefa para jedi?
NÃO.
Se você já usou jQuery,
já tem a metade de um plugin!
Qualquer um pode criar um plugin
Até esse cara!
/**
* Prugin do Abestado
*
* Ela me çeduis!
*/
$('#florentina')
.filter('.dejesus')
.addClass('çedutora');
Um plugin pode estender jQuery
● Ao definir uma nova função utilitária
● Ao definir um novo comando
Código básico
$(function () {
});
Código básico
function uma_funcao()
{
}
jQuery(uma_funcao);
Código básico
uma_funcao = function () {
}
jQuery(uma_funcao);
Código básico
jQuery(function () {
});
Código básico
$ é um apelido para jQuery.
$(function () {
});
Algumas regras básicas
jquery.meuplugin-1.0.js
Algumas regras básicas
Proteja o $
Algumas regras básicas
Preserve o encadeamento
Vamos ver um exemplo de efeito
Reuso da solução
Criando o plugin de fato
Preservando o encadeamento
Minificadores
● JSMin (Douglas Crockford)
● Shrink Safe (Dojo)
● Packer (Dean Edwards)
● Compressor Rater (Arthur Blake)
● YUICompressor (Yahoo)
Exemplo YUICompressor
Referências
● http://www.slideshare.net/1Marc/jquery-essentials
● http://developer.yahoo.com/yui/compressor/
● http://docs.jquery.com
● jQuery em ação
Obrigado!
Contatos
Ricardo Coelho
ricardo@nexy.com.br
http://www.nexy.com.br
@ramcoelho
Dúvidas?
Slides em:
http://www.slideshare.net/ram.coelho

Mais conteúdo relacionado

Mais procurados

Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasRodrigo Branas
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Rodrigo Branas
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de RefactoringRodrigo Branas
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)cesarvianna
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSRodrigo Branas
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11Cezar Souza
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasRodrigo Branas
 

Mais procurados (9)

Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de Refactoring
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
Hello vue
Hello vueHello vue
Hello vue
 

Semelhante a Criando Plugins jQuery

Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkPablo Garrido
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryCarlos Eduardo Alves
 
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivoDesenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivoLeandrinho Vieira
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)Luís Cobucci
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Evandro Klimpel Balmant
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQueryPaulo Pires
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfverickrodrigo23
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitFlávio Lisboa
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre JqueryIvo Calado
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
 

Semelhante a Criando Plugins jQuery (20)

Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao Framework
 
Artigoajax
ArtigoajaxArtigoajax
Artigoajax
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQuery
 
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivoDesenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivo
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
Android na Prática
Android na PráticaAndroid na Prática
Android na Prática
 
jQuery
jQueryjQuery
jQuery
 
jQuery
jQueryjQuery
jQuery
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
J query
J queryJ query
J query
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQuery
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Java Script
Java ScriptJava Script
Java Script
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre Jquery
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
 

Mais de Ricardo Coelho

Melhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileMelhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileRicardo Coelho
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarRicardo Coelho
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLRicardo Coelho
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVNRicardo Coelho
 

Mais de Ricardo Coelho (7)

Melhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileMelhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobile
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
 
pfa
pfapfa
pfa
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 

Criando Plugins jQuery