<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Artigos sobre jQuery, XHTML, CSS e PHP &#124; Julio Bitencourt &#187; framework</title>
	<atom:link href="http://www.juliobitencourt.com/tag/framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juliobitencourt.com</link>
	<description>Artigos e tutoriais sobre desenvolvimento web, jQuery, HTML, PHP, CSS e outras tecnologias.</description>
	<lastBuildDate>Sat, 17 Jul 2010 18:18:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10 dicas para escrever um bom código jQuery</title>
		<link>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 17:19:35 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Produtividade]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=131</guid>
		<description><![CDATA[Recebi este artigo via twitter com 10 dicas muito legais para melhorar o código escrito em jQuery.
Achei interessante criar uma resumo em português com estas 10 dicas. A maioria delas eu passei a utilizar em meus projetos!
1. Use sempre o $(document).ready()
Coloque todo seu código dentro desta função. Isto irá fazer com que seu código jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi este <a title="Link para o artigo original. Em inglês" href="http://www.myinkblog.com/articles/10-tips-for-writing-better-jquery-code/comment-page-1/#comment-29373" target="_blank">artigo</a> via twitter com 10 dicas muito legais para melhorar o código escrito em jQuery.</p>
<p>Achei interessante criar uma resumo em português com estas 10 dicas. A maioria delas eu passei a utilizar em meus projetos!<span id="more-131"></span></p>
<h3>1. Use sempre o $(document).ready()</h3>
<p>Coloque todo seu código dentro desta função. Isto irá fazer com que seu código jQuery seja executado assim que o DOM for carregado mas antes do conteúdo <strong>(veja a dica 2)</strong>. Isto permite que você atribua funções aos eventos dos elementos. Evitando o uso de onload, onclick entre outros. Ou seja, você não irá interferir na marcação HTML com o javascript.</p>
<h3>2. Use o $(window).load ()</h3>
<p>Embora a maioria dos exemplos sejam colocados dentro de $(document).ready() é melhor evitar colocar tudo dentro dele.</p>
<p>$(document).ready() é muito útil. Mas ele ocorre durante a renderização do documento. Funcionalidades supérfluas como scrolling e drag and drop, etc podem ser colocadas dentro de $(window).load() que é executada após o download completo da página.</p>
<p>A sintaxe é a mesma do $(document).ready()</p>
<h3>3. Carregue somente o que precisa</h3>
<p>Nós programadores somos tentados a escrever todo o código javascript em um mesmo local e usá-lo em todas as páginas, seja em forma de arquivo, ou repetindo o código no velho Ctrl C + Ctrl V. O jQuery leva tempo para vasculhar todo o documento em busca dos elementos. Isto pode causar uma queda no rendimento da aplicação.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'home'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #006600; font-style: italic;">// Código usado na home</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blog'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #006600; font-style: italic;">// Código usado no blog</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>4. Saiba o que é o método data() e use-o</h3>
<p>Para guardar e utilizar alguns dados você pode utilizar o método data da jQuery.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #006600; font-style: italic;">// Define o valor</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.myselector'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfavcolor'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orange'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #006600; font-style: italic;">// E então. Retorna o valor</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myselector'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfavcolor'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Eu escrevi um artigo sobre o método data que você pode ver <a href="http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/">clicando aqui</a></p>
<h3>5. Seletores internos da jQuery</h3>
<p>Conhecer os seletores CSS ajuda muito na hora de escrever código jQuery. Mas os seletores internos também ajudam bastante. Veja os seletores aqui <a href="http://docs.jquery.com/Selectors">http://docs.jquery.com/Selectors</a>.<br />
Por exemplo</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div:contains('hello')&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#cc0000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O código acima deixa vermelha a cor de background de todos os elementos div que contenham a palavra &#8220;hello&#8221;. Você também pode usar</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input:password'</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>para selecionar todos os campos do tipo password</p>
<h3>6. Crie flags com classes</h3>
<p>Você pode usar &#8220;flags&#8221; para monitorar o que o usuário está fazendo, ou então para verificar quando determinada ação foi feita ou não. A função addClass serve para adicionar uma classe em um elemento. Desta forma você pode verificar posteriormente a existência da classe com a função hasClass</p>
<h3>7. Não chame o mesmo seletor várias vezes</h3>
<p>Ao invés de fazer isto</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Faça isto</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $p.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Desta forma se armazena o objeto retornado pelo seletor em uma variável para posterior reuso.</p>
<h3>8. Encadeie (quase) tudo</h3>
<p>O encadeamento é muito útil. O mesmo código do exemplo anterior por ser escrito assim</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Tenha cuidado ao utilizar o encadeamento pois pode causar certa lentidão.</p>
<h3>9. Utilize o toggleClass</h3>
<p>Você pode alternar classes de elementos para selecionar seu comportamento. Se sua classe .hidden não mostra nenhum item você pode os tornar visíveis com</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hidden'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>10. Guarde os resultados</h3>
<p>Quando estiver lidando com funções, você pode querer guardar alguns resultados para uso posterior. Uma solução possível é guardar os resultados em objetos com escopo global.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #006600; font-style: italic;">// use the window object for instance</span>
   window.$results <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
   one <span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
   two <span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span>
   <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #006600; font-style: italic;">// this is the function, perhaps ran more than once</span>
   <span style="color: #003366; font-weight: bold;">function</span> getResults <span style="color: #009900;">&#40;</span>first<span style="color: #339933;">,</span> second<span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
   $results.<span style="color: #660066;">one</span> <span style="color: #339933;">=</span> first<span style="color: #339933;">;</span>
   $results.<span style="color: #660066;">two</span> <span style="color: #339933;">=</span> second<span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #006600; font-style: italic;">// run function</span>
   getResults <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li.blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a.red));
   $results.one.hasClass ('</span>blue<span style="color: #3366CC;">'); // true
   $results.two.hasClass ('</span>blue<span style="color: #3366CC;">'); // false
&nbsp;
   // run again
   getResults ($('</span>li.<span style="color: #660066;">red</span><span style="color: #3366CC;">'), $('</span>a.<span style="color: #660066;">blue</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $results.<span style="color: #660066;">one</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
   $results.<span style="color: #660066;">two</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span></pre></td></tr></table></div>

<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/05/corrigir-png-transparente-no-ie-6-com-jquery/' title='Corrigir PNG transparente no IE 6 com jQuery'>Corrigir PNG transparente no IE 6 com jQuery</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "framework";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
