<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"> <channel><title>desenvolvimento para web</title> <link>http://desenvolvimentoparaweb.com</link> <description>desenvolvimento para web trata de jQuery, CSS, usabilidade, performancem, blogs, WordPress, web design e dicas, em geral, para desenvolvimento web</description> <lastBuildDate>Mon, 30 Jan 2012 23:38:52 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/desenvolvimentoparaweb" /><feedburner:info uri="desenvolvimentoparaweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>desenvolvimentoparaweb</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/desenvolvimentoparaweb" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdesenvolvimentoparaweb" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>[PROMOÇÃO] Basekit: ganhe 1 ano da Conta Negócios!</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/KN2zbVFpFZw/</link> <comments>http://desenvolvimentoparaweb.com/indicacoes/basekit-promocao-1-ano-conta-negocios/#comments</comments> <pubDate>Mon, 30 Jan 2012 23:27:46 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[indicações]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=770</guid> <description><![CDATA[Saiba como ganhar 1 ano gr&aacute;tis de uso da Basekit, uma das melhores plataformas de criar sites do mundo!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-771" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/basekit.png" alt="Basekit promo&ccedil;&atilde;o: 1 ano de Conta Neg&oacute;cios gr&aacute;tis!" width="300" height="300" /></p><p>Quer ganhar 1 ano de <strong>Basekit Conta Neg&oacute;cios</strong> com <strong>1GB de armazenamento</strong>, <strong>1 dom&iacute;nio inclu&iacute;do</strong> e <strong>Suporte Premium</strong>? Ent&atilde;o continue lendo o artigo e saiba como ter acesso gr&aacute;tis durante 1 ano inteiro a uma das melhores plataformas de <a
title="Basekit" href="http://www.basekit.com.br/">criar sites</a> do mundo!</p><div
class="artigo-patrocinado">Este &eacute; um artigo patrocinado, mas a opini&atilde;o do autor n&atilde;o est&aacute; &agrave; venda!</div><h2>Sobre a Basekit</h2><p>Criada com o prop&oacute;sito de revolucionar o web design, a Basekit atualmente &eacute; refer&ecirc;ncia na &aacute;rea de constru&ccedil;&atilde;o de sites no mundo, sendo a plataforma preferida de algumas das maiores empresas do mundo de hospedagem, como Hostgator, 123Reg, Acens e Gandi. <a
href="http://www.basekit.com.br">Acesse o site da Basekit</a> e assista ao v&iacute;deo de apresenta&ccedil;&atilde;o. Voc&ecirc; vai entender o motivo!</p><p>Fundada em 2008, foi premiada no Seedcamp, um importante evento de incentivo ao empreededorismo na Europa, e, pouco tempo depois, recebeu um <em>round</em> de investimentos avaliado em US$ 10 milh&otilde;es, da Eden Ventures, Nauta Capital e NESTA (fundos europeus de capital de risco).</p><p><a
href="http://www.basekit.com/press">Eleita pelo jornal Sunday Times como a melhor empresa de constru&ccedil;&atilde;o de sites do mundo em 2011</a>, a Basekit tem auxiliado mais de 100 mil pequenos empres&aacute;rios e web designers (mais de 95% do total) em todo o mundo a criar sites funcionais e atraentes de maneira inteligente e r&aacute;pida.</p><p>No caso dos designers, a empresa vem desenvolvendo uma a&ccedil;&atilde;o de <em>crowdsourcing</em> batizada de &#8220;Basekit Pro&#8221;, por meio da qual os profissionais recebem uma s&eacute;rie de incentivos, entre os quais est&atilde;o a hospedagem gratuita dos sites que criam e a indica&ccedil;&atilde;o para a realiza&ccedil;&atilde;o de Jobs em todo o pa&iacute;s.</p><p>A empresa opera atualmente com mais de 50 funcion&aacute;rios, com sedes em Londres, Bristol, Barcelona e S&atilde;o Paulo, e mant&eacute;m parceria com empresas de renome, como a Telef&ocirc;nica, que prev&ecirc; 50% de desconto na cria&ccedil;&atilde;o de sites por um ano para as empresas que se cadastrarem no Portal &#8220;Sua Empresa, Nosso Neg&oacute;cio&#8221;, e o Grupo brit&acirc;nico UK2 (especializada em servidores para grandes empresas), que contribuiu para tornar a cria&ccedil;&atilde;o de sites mais f&aacute;cil e acess&iacute;vel a todos os consumidores.</p><h2>Como ganhar 1 ano da Basekit Conta Neg&oacute;cios</h2><p>Deu pra ver que a plataforma &eacute; uma ferramenta de primeira qualidade! E voc&ecirc; pode ganhar <strong>1 ano gr&aacute;tis</strong> da Conta Neg&oacute;cios, que tem:</p><ul><li><strong>Hospedagem inclu&iacute;da</strong></li><li><strong>P&aacute;ginas ilimitadas</strong></li><li><strong>1Tb de banda larga</strong></li><li><strong>1Gb de armazenamento</strong></li><li><strong>Suporte Premium</strong></li><li><strong>Mais de 50 temas de sites dispon&iacute;veis</strong></li><li><strong>1 dom&iacute;nio inclu&iacute;do</strong></li><li><strong>R$30 Google Ads voucher</strong></li><li><strong>Paypal</strong></li></ul><p>Para concorrer, &eacute; f&aacute;cil: <strong>basta fazer um coment&aacute;rio neste artigo</strong>! &Eacute; isso, mesmo, ao fazer um coment&aacute;rio neste artigo, automaticamente voc&ecirc; estar&aacute; concorrendo a 1 ano da Conta Neg&oacute;cio da Basekit. Mas n&atilde;o valem coment&aacute;rios do tipo &#8220;Legal&#8221;, &#8220;Entrei&#8221; ou &#8220;Tow nessa&#8221;. Escreve pelo menos 1 ou 2 linhas explicando o porqu&ecirc; de voc&ecirc; querer ganhar a promo&ccedil;&atilde;o. Ah, e s&oacute; vale <strong>1 coment&aacute;rio por pessoa</strong>, hein!</p><p>Voc&ecirc; tem <strong>at&eacute; dia 6 de fevereiro</strong>, exatamente 1 semana, para comentar e concorrer. Quando o tempo expirar, o n&uacute;mero total de coment&aacute;rios ser&aacute; jogado em alguma ferramenta de sorteio para determinar quem &eacute; o ganhador.</p><p>Boa sorte!  ;-)</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li>Nenhum artigo relacionado...</li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/35oMZlFYFI-gxBEkNpFHzjHDWhU/0/da"><img src="http://feedads.g.doubleclick.net/~a/35oMZlFYFI-gxBEkNpFHzjHDWhU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/35oMZlFYFI-gxBEkNpFHzjHDWhU/1/da"><img src="http://feedads.g.doubleclick.net/~a/35oMZlFYFI-gxBEkNpFHzjHDWhU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=KN2zbVFpFZw:Y-I5pARSNj4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=KN2zbVFpFZw:Y-I5pARSNj4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=KN2zbVFpFZw:Y-I5pARSNj4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=KN2zbVFpFZw:Y-I5pARSNj4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=KN2zbVFpFZw:Y-I5pARSNj4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=KN2zbVFpFZw:Y-I5pARSNj4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/KN2zbVFpFZw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/indicacoes/basekit-promocao-1-ano-conta-negocios/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/indicacoes/basekit-promocao-1-ano-conta-negocios/</feedburner:origLink></item> <item><title>Estratégia de Conteúdo ou Content Strategy</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/CmO8sWh4Q2M/</link> <comments>http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/#comments</comments> <pubDate>Mon, 16 Jan 2012 12:00:36 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[miscelânea]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Estratégia de Conteúdo]]></category> <category><![CDATA[Web]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=761</guid> <description><![CDATA[Estrat&eacute;gia de Conte&uacute;do: saiba o que &eacute;, para que serve e como se atua nesta emergente e promissora &aacute;rea do desenvolvimento web]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-766" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-de-conteudo-content-strategy.jpg" alt="Estrat&eacute;gia de Conte&uacute;do ou Content Strategy" width="320" height="319" /></p><p>A maioria j&aacute; compreendeu que <strong>desenvolvimento web</strong> &eacute; o ramo / campo de atua&ccedil;&atilde;o mais din&acirc;mico que existe atualmente. Todos os dias novos conte&uacute;dos, t&eacute;cnicas e abordagens sobre seus diversos segmentos s&atilde;o descobertos, divulgados, testados e aprovados, come&ccedil;ando novamente num ciclo de constante aprimoramento.</p><p>E essa dinamicidade n&atilde;o diz respeito a somente conte&uacute;dos sobre o que j&aacute; existe; tamb&eacute;m &eacute; sobre novas ramifica&ccedil;&otilde;es do conhecimento web que surgem. &Eacute; o caso da <strong>Estrat&eacute;gia de Conte&uacute;do</strong>.</p><div
class="artigo-traduzido">Este artigo &eacute; baseado no <span
lang="en">post <a
href="http://knol.google.com/k/content-strategy">Content Strategy</a></span> do <a
href="http://knol.google.com/"><span
lang="en">Google Knol</span></a>.</div><h2>Vis&atilde;o Geral</h2><p><strong>Estrat&eacute;gia de Conte&uacute;do</strong> ou <strong>Content Strategy</strong> &eacute; uma &aacute;rea de atua&ccedil;&atilde;o emergente dentro do mundo do desenvolvimento web &#8211; considerada por alguns especialistas como uma parte do Design de Experi&ecirc;ncia do Usu&aacute;rio (<em>User Experience Design</em> ou UXD), mas isso n&atilde;o &eacute; un&acirc;nime.</p><p>A Estrat&eacute;gia de Conte&uacute;do tamb&eacute;m descreve os pap&eacute;is, produtos de trabalho, abordagens, conhecimentos, t&eacute;cnicas, metodologias e perspectivas do profissional da &aacute;rea, o <strong>estrategista de conte&uacute;do</strong>.</p><h2>Conte&uacute;do</h2><p>Conte&uacute;do &eacute; subst&acirc;ncia. N&atilde;o importa a plataforma, publica&ccedil;&atilde;o ou formato, o conte&uacute;do se refere a tudo o que transmite um significado:</p><ul><li>&#8220;Conte&uacute;do inclui texto, gr&aacute;ficos, v&iacute;deo e &aacute;udio que comp&otilde;em uma experi&ecirc;ncia interativa.&#8221; &#8211; Kristina Halvorson</li><li>&#8220;Tecnicamente, o conte&uacute;do da Web pode ser qualquer coisa que aparece em um site, incluindo palavras, imagens, v&iacute;deo, sons, arquivos para download (PDF), bot&otilde;es, &iacute;cones e logos.&#8221; &#8211; Richard Sheffield</li><li>&#8220;Informa&ccedil;&atilde;o e experi&ecirc;ncias que pode proporcionar valor para um end-user/audiencia em contextos espec&iacute;ficos.&#8221; &#8211; Wikipedia</li><li>&#8220;Tudo &eacute; conte&uacute;do.&#8221; &#8211; Rachel Lovinger citando Chris Sizemore</li><li>&#8220;Simplesmente, o conte&uacute;do s&atilde;o dados contextualizados.&#8221;</li></ul><h2>Estrat&eacute;gia de Conte&uacute;do</h2><p>Estrat&eacute;gia de Conte&uacute;do &eacute; um campo emergente de pr&aacute;tica que engloba todos os aspectos de conte&uacute;do, incluindo a sua concep&ccedil;&atilde;o, desenvolvimento, an&aacute;lise, apresenta&ccedil;&atilde;o, medi&ccedil;&atilde;o, avalia&ccedil;&atilde;o, produ&ccedil;&atilde;o, gest&atilde;o e governan&ccedil;a.</p><p>Kristina Halvorson, autora de <a
href="http://www.contentstrategy.com/">Content Strategy for the Web</a>, define Estrat&eacute;gia de Conte&uacute;do como &#8220;a pr&aacute;tica de planejamento para cria&ccedil;&atilde;o de conte&uacute;do, entrega e governan&ccedil;a&#8221;.</p><p>Rahel Anne Bailie estendeu a defini&ccedil;&atilde;o de Estrat&eacute;gia de Conte&uacute;do como &#8220;um processo repetitivo ou metodologia que gerencia conte&uacute;do dentro de seu ciclo de vida inteiro&#8221;. Esta defini&ccedil;&atilde;o reconhece que ciclos de vida iterativos conte&uacute;do v&atilde;o al&eacute;m da entrega e, n&atilde;o necessariamente, come&ccedil;am com a cria&ccedil;&atilde;o de conte&uacute;do.</p><p>No livro <a
href="http://www.web-content-strategy.com/">The Web Content Strategists Bible</a>, Richard Sheffield d&aacute; &ecirc;nfase &agrave; import&acirc;ncia do processo editorial da Estrat&eacute;gia de Conte&uacute;do.</p><div
id="attachment_762" class="wp-caption aligncenter" style="width: 310px"><a
href="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-conteudo-ciclo-vida-conteudo.png" target="_blank"><img
class="size-medium wp-image-762 " src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-conteudo-ciclo-vida-conteudo-300x231.png" alt="Estrat&eacute;gia de Conte&uacute;do: Ciclo de Vida do Conte&uacute;do" width="300" height="231" /></a><p
class="wp-caption-text">Ciclo de Vida do Conte&uacute;do, segundo Erin Scime (clique para aumentar)</p></div><h2>Estrat&eacute;gia de Conte&uacute;do: metodologias</h2><p>Como &eacute; que se aplica este pensamento ou &#8220;se faz&#8221; Estrat&eacute;gia de Conte&uacute;do? <a
href="http://intentionaldesign.ca/">Rahel Bailie</a> partilha a sua metodologia:</p><p>O <strong>Ciclo de Vida do Conte&uacute;do</strong> &eacute; um sistema de repeti&ccedil;&atilde;o que rege a gest&atilde;o de conte&uacute;do. Os processos dentro de um Ciclo de Vida do Conte&uacute;do s&atilde;o &#8220;agn&oacute;sticos&#8221;. Os processos s&atilde;o estabelecidos como parte de uma Estrat&eacute;gia de Conte&uacute;do e implementados durante o Ciclo de Vida do Conte&uacute;do.</p><p>O Ciclo de Vida do Conte&uacute;do abrange quatro fases macro: An&aacute;lise Estrat&eacute;gica, Coleta de Conte&uacute;do, Gest&atilde;o do Conte&uacute;do e Publica&ccedil;&atilde;o (que inclui a publica&ccedil;&atilde;o e a p&oacute;s-publica&ccedil;&atilde;o). O Ciclo est&aacute; em vigor se o conte&uacute;do &eacute; controlado por um CMS ou n&atilde;o, se ele &eacute; traduzido ou n&atilde;o, se ele &eacute; exclu&iacute;do no final de sua vida ou revisado e re-utilizado. O quadrante de an&aacute;lise compreende a Content Strategy; os outros 3 quadrantes s&atilde;o mais de natureza t&aacute;tica, com foco na implementa&ccedil;&atilde;o da <strong>Estrat&eacute;gia de Conte&uacute;do</strong>.</p><div
id="attachment_763" class="wp-caption aligncenter" style="width: 310px"><a
href="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-conteudo-ciclo-vida-conteudo-rahel-bailie.png" target="_blank"><img
class="size-medium wp-image-763 " src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-conteudo-ciclo-vida-conteudo-rahel-bailie-300x216.png" alt="Estrat&eacute;gia de Conte&uacute;do: Ciclo de Vida do Conte&uacute;do segundo Rahel Bailie" width="300" height="216" /></a><p
class="wp-caption-text">Ciclo de Vida do Conte&uacute;do segundo Rahel Bailie (clique para ampliar)</p></div><h3>An&aacute;lise</h3><p>Na fase de An&aacute;lise, o Ciclo de Vida do Conte&uacute;do diz respeito aos aspectos estrat&eacute;gicos do conte&uacute;do. Um estrategista de conte&uacute;do (ou Analista de Neg&oacute;cios ou Arquiteto da Informa&ccedil;&atilde;o ou Escritor) examina a necessidade de v&aacute;rios tipos de conte&uacute;do dentro do contexto do neg&oacute;cio e dos consumidores de conte&uacute;do para v&aacute;rias sa&iacute;das em m&uacute;ltiplas plataformas.</p><p>A An&aacute;lise tem uma influ&ecirc;ncia sobre a forma como a Estrat&eacute;gia de Conte&uacute;do &eacute; implementada em outros quadrantes do Ciclo de Vida do Conte&uacute;do. Em um novo projeto com novos conte&uacute;dos, este &eacute; o in&iacute;cio do processo. Na maior parte do tempo, o processo vai come&ccedil;ar em algum outro lugar no ciclo; depende muito de uma multiplicidade de fatores envolvidos na mudan&ccedil;a de conte&uacute;do de um estado atual para um estado futuro.</p><h3>Coleta</h3><p>A Coleta pode se dar atrav&eacute;s do desenvolvimento de conte&uacute;do &#8211; cria&ccedil;&atilde;o de conte&uacute;do ou edi&ccedil;&atilde;o de conte&uacute;do de terceiros -, conte&uacute;dos de outras fontes, incorpora&ccedil;&atilde;o de conte&uacute;do ou um h&iacute;brido de integra&ccedil;&atilde;o de conte&uacute;do e converg&ecirc;ncia &#8211; por exemplo, mashups.</p><h3>Gest&atilde;o</h3><p>O quadrante da Gest&atilde;o concerne ao uso eficiente e eficaz do conte&uacute;do. Em organiza&ccedil;&otilde;es que usam a tecnologia para automatizar o gerenciamento de conte&uacute;do, o aspecto da gest&atilde;o assume o uso de um CMS. Em organiza&ccedil;&otilde;es com pequenas quantidades de conte&uacute;do, com pouca necessidade de controle de fluxo de trabalho, um gerenciamento manual &eacute; at&eacute; poss&iacute;vel. No entanto, em grandes empresas, h&aacute; muito conte&uacute;do e h&aacute; muitas varia&ccedil;&otilde;es da produ&ccedil;&atilde;o de conte&uacute;do, portanto um CMS se faz obrigat&oacute;rio.</p><p>O potencial de configura&ccedil;&atilde;o de conte&uacute;do &eacute; enorme e se baseia nas informa&ccedil;&otilde;es recolhidas durante a fases de An&aacute;lise e Coleta. As solu&ccedil;&otilde;es ser&atilde;o muito contextualizadas e giram em torno das entradas e sa&iacute;das, as vari&aacute;veis ​​conte&uacute;do exigido, a complexidade do pipeline de publica&ccedil;&atilde;o e as tecnologias em jogo. As perguntas mais b&aacute;sicas giram em torno da ado&ccedil;&atilde;o de padr&otilde;es e tecnologias e determina&ccedil;&atilde;o de componentes, granularidade de conte&uacute;do e o qu&atilde;o longe o pipeline de publica&ccedil;&atilde;o ir&aacute; implementar t&eacute;cnicas espec&iacute;ficas.</p><h3>Publica&ccedil;&atilde;o</h3><p>O quadrante da Publica&ccedil;&atilde;o trata dos aspectos de conte&uacute;do que acontecem quando o conte&uacute;do &eacute; entregue para a plataforma de output. Publicar o conte&uacute;do &eacute; apenas um ponto na itera&ccedil;&atilde;o do Ciclo de Vida; existem considera&ccedil;&otilde;es na p&oacute;s-publica&ccedil;&atilde;o, tais como reutiliza&ccedil;&atilde;o e pol&iacute;ticas de reten&ccedil;&atilde;o que requerem aten&ccedil;&atilde;o.</p><h2>Estrategistas de Conte&uacute;do</h2><p>Mas as perspectivas estrategistas de conte&uacute;do dependem bastante da forma&ccedil;&atilde;o, educa&ccedil;&atilde;o e influ&ecirc;ncia do profissional.</p><p>Por exemplo, alguns se especializam em <strong>An&aacute;lise de Conte&uacute;do</strong>, que &eacute; mais sobre trabalhar com metadados, taxonomia, SEO e as maneiras em que a boa aplica&ccedil;&atilde;o desses conceitos d&aacute; suporte ao conte&uacute;do.</p><p>Outros preferem rumar para estrat&eacute;gias de <strong>Web Editorial</strong>, diretrizes e ferramentas que pode se estender a gest&atilde;o da mudan&ccedil;a organizacional. Esta forma de Estrat&eacute;gia de Conte&uacute;do pode estar preocupada com o desenvolvimento de novas formas de conte&uacute;dos, tais como multim&iacute;dia ou v&aacute;rias tecnologias de &#8220;gest&atilde;o de presen&ccedil;a&#8221;, como microblogs.</p><p>H&aacute;, tamb&eacute;m, outra corrente que simpatiza mais com os objetivos da <strong>Arquitetura da Informa&ccedil;&atilde;o</strong>. Neste caso, a Estrat&eacute;gia de Conte&uacute;do envolve a escrita do <a
title="CopyWriting: O que &eacute;? Para que serve?" href="http://mktportugal.com/blog/?p=2060">Copy</a> do site para as p&aacute;ginas do site novo e adaptar o conte&uacute;do para as j&aacute; existentes.</p><p>Todos os estrategistas de conte&uacute;do est&atilde;o familiarizados com uma grande variedade de aplica&ccedil;&otilde;es e ferramentas e, muitas vezes, s&atilde;o respons&aacute;veis ​​pela implementa&ccedil;&atilde;o e treinamento de pessoas para melhor us&aacute;-las.</p><div
id="attachment_764" class="wp-caption aligncenter" style="width: 310px"><a
href="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-de-conteudo-estrategista-conteudo-colaboracao.png" target="_blank"><img
class="size-medium wp-image-764 " src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-de-conteudo-estrategista-conteudo-colaboracao-300x259.png" alt="Estrat&eacute;gia de Conte&uacute;do: Colabora&ccedil;&atilde;o com Estrategista de Conte&uacute;do" width="300" height="259" /></a><p
class="wp-caption-text">Colabora&ccedil;&atilde;o com Estrategista de Conte&uacute;do, por Richard Ingram (clique para ampliar)</p></div><h2>Educa&ccedil;&atilde;o e Forma&ccedil;&atilde;o Profissional</h2><p>Estrategistas de conte&uacute;do surgem de uma variedade de disciplinas acad&ecirc;micas formais e profissionais:</p><ul><li>Biblioteconomia e Ci&ecirc;ncia da Informa&ccedil;&atilde;o</li><li>Ci&ecirc;ncia da Computa&ccedil;&atilde;o</li><li>Artes C&ecirc;nicas</li><li>Publicidade e Marketing</li><li>Ret&oacute;rica e Composi&ccedil;&atilde;o</li><li>Reda&ccedil;&atilde;o T&eacute;cnica e Comunica&ccedil;&atilde;o</li><li>Jornalismo</li><li>Comunica&ccedil;&otilde;es</li><li>Consultoria de Gest&atilde;o</li></ul><h2>Empregadores proeminentes de estrategistas de conte&uacute;do</h2><p>Apesar de ser uma profiss&atilde;o relativamente nova, mega-empresas de renome internacional j&aacute; contrataram ou est&atilde;o contratando estrategistas de conte&uacute;do. Alguns exemplos:</p><p><img
class="aligncenter size-full wp-image-765" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/estrategia-de-conteudo-empregadores-empresas.jpg" alt="Estrat&eacute;gia de Conte&uacute;do: empresas que contratam" width="507" height="451" /></p><h2>Estrat&eacute;gia de Conte&uacute;do: Produtos de Trabalho (ou Entregas)</h2><p><strong>Os Produtos de Trabalho (ou Entregas)</strong> t&iacute;picos de Estrat&eacute;gia de Conte&uacute;do s&atilde;o diversos e dependem das necessidades da empresa e do <em>know-how</em> do estrategista de conte&uacute;do. <a
href="http://www.pybop.com/">Shelly Bowen</a> diz:</p><blockquote><p>Alguns estrategistas de conte&uacute;do tamb&eacute;m s&atilde;o (no fundo) escritores, editores, designers ou arquitetos de informa&ccedil;&atilde;o. Esse background influencia n&atilde;o apenas a estrat&eacute;gia, mas, tamb&eacute;m, as Entregas.</p></blockquote><p>A mesma Shelly Bowen tamb&eacute;m indica esta lista Estregas como guia:</p><p><strong>O que se quer alcan&ccedil;ar?</strong></p><ul><li>Resumo dos objetivos da empresa</li></ul><p><strong>O que se tem?</strong></p><ul><li>Invent&aacute;rio de Conte&uacute;do ou Auditoria</li><li>Avalia&ccedil;&atilde;o de Conte&uacute;do (qualidade e quantidade)</li></ul><p><strong>O que est&aacute; faltando?</strong></p><ul><li>An&aacute;lise de lacunas de conte&uacute;do</li><li>An&aacute;lise comparativa de conte&uacute;do</li><li>An&aacute;lise competitiva</li></ul><p><strong>Como apresentar as palavras?</strong></p><ul><li>Personas</li><li>Cen&aacute;rios (pense em hist&oacute;rias veross&iacute;meis)</li><li>Estrat&eacute;gia Editorial</li><li>Estrat&eacute;gia de mensagens</li><li>Conte&uacute;do de amostra</li><li>Modelos de conte&uacute;do</li><li>Estrat&eacute;gia de SEO</li><li>Estrat&eacute;gia de marca</li><li>Estrat&eacute;gia de metadados</li><li>Guia de estilo</li><li>Gloss&aacute;rio</li></ul><p><strong>Aonde se quer chegar?</strong></p><ul><li>Estrat&eacute;gia de canais</li><li>Estrat&eacute;gia de convers&atilde;o/migra&ccedil;&atilde;o de conte&uacute;do</li><li>Esquema do Fluxo de Conte&uacute;do</li><li>Comunidade e Estrat&eacute;gia Social</li><li>Recomenda&ccedil;&otilde;es de visual</li><li>Wireframes</li></ul><p><strong>Como fazer acontecer?</strong></p><ul><li>Workflow da aprova&ccedil;&atilde;o de conte&uacute;do</li><li>Planos de comunica&ccedil;&atilde;o</li><li>Pol&iacute;ticas de modera&ccedil;&atilde;o comunit&aacute;rias</li><li>Oficinas e workshops de produ&ccedil;&atilde;o de conte&uacute;do</li><li>Revis&atilde;o de fornecedores de conte&uacute;do e planos (pessoas, ferramentas, or&ccedil;amento, tempo)</li></ul><p><strong>Como se manter organizado?</strong></p><ul><li>Requisitos de CMS</li><li>Regras de Neg&oacute;cio</li><li>Taxonomias</li><li>Responsabilidades</li><li>Hor&aacute;rios</li></ul><p><strong>Como saber se se est&aacute; correto?</strong></p><ul><li>Requisitos de CMS</li><li>Testes de usabilidade</li><li>Benchmarks</li><li>Resumo dos objetivos da empresa</li><li>M&eacute;tricas de sucesso</li></ul><p><strong>O que vem a seguir?</strong></p><ul><li>Calend&aacute;rio Editorial</li></ul><p>Aqui est&aacute; algumas <a
href="http://www.leenjones.com/2008/08/what-is-content-strategy-part-ii-examples/">ideias e exemplos concretos de aplica&ccedil;&atilde;o de Estrat&eacute;gia de Conte&uacute;do</a>, mostrados por <a
href="http://www.leenjones.com/blog/">Colleen Jones</a>.</p><h2>Modelos e Guias para download</h2><p>A seguir, alguns recursos de Estrat&eacute;gia de Conte&uacute;do, fornecidos por <a
href="http://www.kevinpnichols.com/">Kevin P. Nichols</a>.</p><ul><li><a
href="http://www.kevinpnichols.com/downloads/kpn_content_audit.xls">Invent&aacute;rio/Auditoria de Conte&uacute;do</a> (.xls)</li><li><a
href="http://www.kevinpnichols.com/downloads/kpn_content_market_matrix.xls">Matriz de Mercado de Conte&uacute;do</a>(.xls)</li><li><a
href="http://www.kevinpnichols.com/downloads/kpn_content_matrix.xls">Matriz de Conte&uacute;do</a>(.xls)</li><li><a
href="http://www.kevinpnichols.com/downloads/kpn_current_state_stakeholder_protocol.pdf">Guia de Protocolo de Estado Atual de Stakeholder</a>(.pdf)</li></ul><h2>Leitura Complementar</h2><p>Blogs sobre Estrat&eacute;gia de Conte&uacute;do</p><ul><li><a
href="http://blog.braintraffic.com/">Brain Traffic</a></li><li><a
href="http://content-science.com/expertise/content-insights/p/1">Content Insights</a></li><li><a
href="http://eatmedia.net/blog/">Eat Media</a></li><li><a
href="http://predicate-llc.com/category/link-blog/">Notes on Content</a></li><li><a
href="http://shellybowen.com/pybop">Pybop</a></li><li><a
href="http://scattergather.razorfish.com/">Scatter Gather</a></li></ul><p>Livros sobre Estrat&eacute;gia de Conte&uacute;do</p><ul><li><a
href="http://content-science.com/clout">Clout: The Art + Science of Influential Web Content</a></li><li><a
href="http://www.contentstrategy.com/">Content Strategy for the Web</a></li><li><a
href="http://www.abookapart.com/products/the-elements-of-content-strategy">The Elements of Content Strategy</a></li><li><a
href="http://www.web-content-strategy.com/">The Web Content Strategist&#8217;s Bible</a></li></ul><p>Artigos e publica&ccedil;&otilde;es importantes</p><ul><li>Margot Bloomstein; &#8220;<a
href="http://www.alistapart.com/articles/the-case-for-content-strategy-motown-style/">The Case for Content Strategy &#8211; Motown Style</a>&#8220;, A List Apart, 18 ago 2009.</li><li>Kristina Halvorson; &#8220;<a
href="http://alistapart.com/articles/thedisciplineofcontentstrategy">The Discipline of Content Strategy</a>&#8220;, A List Apart, 16 dez 2008.</li><li>Colleen Jones; &#8220;<a
href="http://www.smashingmagazine.com/2011/04/12/make-your-content-make-a-difference/">Make Your Content Make a Difference</a>&#8220;, Smashing Magazine, 12 abr 2011.</li><li>Colleen Jones; &#8220;<a
href="http://www.uxmatters.com/mt/archives/2009/04/toward-content-quality.php">Toward Content Quality</a>&#8220;, UXmatters, 13 abril 2009.</li><li>Matt Kinsman; &#8220;<a
href="http://www.foliomag.com/2008/editor-content-strategist">From Editor to &#8216;Content Strategist:&#8217; Semantics or Fundamental Change?</a>&#8220;, Folio, 1 jul 2008.</li><li>Fred Leise; &#8220;<a
href="http://boxesandarrows.com/view/content-analysis">Content Analysis Heuristics</a>&#8220;, Boxes and Arrows, 26 February 2007. 12 mar 2007.</li><li>Rachel Lovinger; &#8220;<a
href="http://www.boxesandarrows.com/view/content-strategy-the">Content Strategy: The Philosophy of Data</a>&#8220;, Boxes and Arrows, 26 fev 2007.</li><li>Jeffrey MacIntyre; &#8220;<a
href="http://alistapart.com/articles/contenttiousstrategy">Content-tious Strategy</a>&#8220;, A List Apart, 16 dez 2008.</li><li>Jeffrey MacIntyre; &#8220;<a
href="http://paidcontent.org/article/419-the-next-big-headache-for-digital-publishers/">The Next Big Headache for Digital Publishers</a>&#8220;, PaidContent, 6 ago 2009.</li><li>Karen McGrane; &#8220;<a
href="http://www.slideshare.net/KMcGrane/content-strategy-content-is-king">Content Strategy: Content Is King!</a>&#8220;, From Business to Buttons, 11 jun 2009.</li><li>Peter Merholz; &#8220;<a
href="http://www.adaptivepath.com/blog/2008/05/22/the-marginalization-of-content/">The Marginalization of Content</a>&#8220;, adaptivepath.com, 22 maio 2008.</li><li>Kaitlin Pike, &#8220;<a
href="http://blog.web2expo.com/2010/07/why-you-need-to-hire-a-content-strategist/">Why You Need to Hire a Content Strategist</a>&#8220;, Web 2.0 interview with Margot Bloomstein, 7 jul 2010.</li><li>Theresa Putkey; &#8220;<a
href="http://www.boxesandarrows.com/idea/view/8053">Exploring the Content Strategist Title</a>&#8220;, Boxes and Arrows, 22 maio 2007.</li><li>Erin Scime; &#8220;<a
href="http://www.alistapart.com/comments/content-strategist-as-digital-curator/">The Content Strategist as Digital Curator</a>&#8220;, A List Apart, 8 dez 2009.</li></ul><h2>Conclus&atilde;o</h2><p>No Brasil, pouco se tem falado a respeito, mas, como p&ocirc;de ser visto no artigo, <strong>Content Strategy</strong>, apesar de ser uma &aacute;rea de atua&ccedil;&atilde;o relativamente nova, j&aacute; conta com uma excelente bagagem advinda de outras &aacute;reas de conhecimento e muito, muito conte&uacute;do para ser estudado e aprendido.</p><p>A entrada de cada vez mais empresas no ambiente digital, aliada &agrave; necessidade das que j&aacute; est&atilde;o em aprimorar sua presen&ccedil;a e atua&ccedil;&atilde;o, certamente o estrategista de conte&uacute;do come&ccedil;ar&aacute; a ser um profissional bastante requisitado e, n&atilde;o duvide, ser&aacute; um elemento-chave para o meio online futuro.</p><p>Assim como hoje n&atilde;o &eacute; sequer imagin&aacute;vel um projeto web sem algu&eacute;m com conhecimentos de Usabilidade, Design e Programa&ccedil;&atilde;o, brevemente o mesmo acontecer&aacute; para a <strong>Estrat&eacute;gia de Conte&uacute;do</strong>.</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/" title="Cores na web: guia completo">Cores na web: guia completo</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/" title="URLs longas apresentadas corretamente com CSS">URLs longas apresentadas corretamente com CSS</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar/" title="Novas tecnologias exigem novas maneiras de se comunicar">Novas tecnologias exigem novas maneiras de se comunicar</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/midia-social/mastering-twitter-o-manual-completo-sobre-twitter-para-desenvolvedores-e-marketeiros/" title="Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros">Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/qx9mIffvSH515VYA1YqOHapmfjw/0/da"><img src="http://feedads.g.doubleclick.net/~a/qx9mIffvSH515VYA1YqOHapmfjw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qx9mIffvSH515VYA1YqOHapmfjw/1/da"><img src="http://feedads.g.doubleclick.net/~a/qx9mIffvSH515VYA1YqOHapmfjw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=CmO8sWh4Q2M:2Me0Q4Zf5rk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=CmO8sWh4Q2M:2Me0Q4Zf5rk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=CmO8sWh4Q2M:2Me0Q4Zf5rk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=CmO8sWh4Q2M:2Me0Q4Zf5rk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=CmO8sWh4Q2M:2Me0Q4Zf5rk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=CmO8sWh4Q2M:2Me0Q4Zf5rk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/CmO8sWh4Q2M" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/</feedburner:origLink></item> <item><title>10 dicas que desenvolvedores web iniciantes devem saber</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/Ygd9wRKYNA0/</link> <comments>http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/#comments</comments> <pubDate>Mon, 02 Jan 2012 12:00:33 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[miscelânea]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Carreira]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=753</guid> <description><![CDATA[Veja estas 10 dicas para desenvolvedores novatos e comece sua carreira com o p&eacute; direito]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-758" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2012/01/10-dicas-desenvolvedores-web-iniciantes-devem-saber.gif" alt="10 dicas que desenvolvedores web iniciantes devem saber" width="247" height="273" /></p><p>Se voc&ecirc; &eacute; um desenvolvedor iniciante, pode ser confuso sobre onde voc&ecirc; deve come&ccedil;ar no mundo do <strong>desenvolvimento web</strong>, j&aacute; que o ramo &eacute; amplo e oferece muitas op&ccedil;&otilde;es de escolha. H&aacute; muitas perguntas a serem feitas, tais como &#8220;Que linguagem de programa&ccedil;&atilde;o quero aprender?&#8221; ou &#8220;Eu deveria saber sobre front-end ou apenas back-end?&#8221;, e existem, literalmente, centenas de outras.</p><p>Mas, para que voc&ecirc; n&atilde;o fique t&atilde;o perdido, esta lista de <strong>10 dicas que desenvolvedores web iniciantes devem saber</strong> realmente pode ajud&aacute;-lo a iniciar sua carreira como desenvolvedor ou, caso j&aacute; tenha come&ccedil;ado, pode servir de norte para voc&ecirc; perceber se realmente escolheu a &aacute;rea certa ou se vai mudar.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original <a
href="http://www.1stwebdesigner.com/design/things-beginner-developers-should-know/"><span
lang="en">10 Things Beginner Developers Should Know</span></a>, do blog <a
href="http://www.1stwebdesigner.com/"><span
lang="en">1stwebdesigner</span></a> – e sofreu pequenas adapta&ccedil;&otilde;es.</div><h2>Decida quais habilidades voc&ecirc; quer</h2><p>Ao iniciar na carreira de <strong>desenvolvedor web</strong>, voc&ecirc; realmente precisa se concentrar em alguma coisa e aceitar o fato de que n&atilde;o &eacute; poss&iacute;vel ser um &#8220;generalista&#8221;. Acredite: mesmo dando muita vontade de atuar em v&aacute;rios e v&aacute;rios campos do desenvolvimento web, isso &eacute; imposs&iacute;vel! Al&eacute;m do mais, geralmente o mercado valoriza mais um <em>expert</em> numa &aacute;rea do que um &#8220;faz tudo web&#8221;.</p><p><img
class="size-full wp-image-754 alignright" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/10-coisas-desenvolvedores-web-iniciantes-devem-saber-php.jpg" alt="10 coisas que desenvolvedores web iniciantes devem saber: exemplo PHP" width="250" height="150" /></p><p>N&atilde;o h&aacute; nada de errado em querer em ser excelente em v&aacute;rios campos, mas voc&ecirc; realmente n&atilde;o poder&aacute; fazer isso no come&ccedil;o. O que voc&ecirc; pode fazer &eacute; centrar seus esfor&ccedil;os no aprendizado em uma habilidade e se tornar um perito nesse campo. Pode ser PHP, Ruby, ASP.net ou C #, mas tem que ser bom no que faz&#8230; Muito bom! Depois de dominar um deles, voc&ecirc; pode seguir em frente, mas n&atilde;o fa&ccedil;a isso at&eacute; que voc&ecirc; tenha grande conhecimento nesse campo.</p><p>Esta dica tamb&eacute;m &eacute; bom para front-end designers, que sempre come&ccedil;am com HTML e CSS, depois passam para JavaScript, jQuery, AJAX, ou quaisquer outros que estiverem interessados ​. Claro, <strong>&eacute; poss&iacute;vel aprender HTML e CSS ao mesmo tempo</strong>, mas isso &eacute; porque eles meio que trabalham em conjunto. Voc&ecirc; n&atilde;o pode realmente dominar PHP e ASP.net ao mesmo tempo &#8211; a menos que voc&ecirc; gaste 20 horas de estudos por dia, o que, definitivamente, n&atilde;o &eacute; recomendado -, portanto, voc&ecirc; tem que adquirir suas habilidades uma a uma.</p><p>Mas, j&aacute; que voc&ecirc; &eacute; um novato e, provavelmente, n&atilde;o deve saber muito sobre linguagens de programa&ccedil;&atilde;o <em>hardcore</em>, escolher uma &aacute;rea para come&ccedil;ar pode ser complicado, mas h&aacute; uma solu&ccedil;&atilde;o: pense no que voc&ecirc; quiser desenvolver: se for temas para WordPress, ent&atilde;o seu caminho &eacute; o PHP; se for sistemas de gest&atilde;o personalizados, tente ASP.net; jogos de iPhone, aprender C# e assim por diante.</p><p>Basta pesquisar um pouco sobre o que cada linguagem pode fazer e come&ccedil;ar a aprender. E, neste caminho, voc&ecirc; certamente vai aprender que &eacute; poss&iacute;vel fazer as mesmas coisas usando diferentes linguagens&#8230;</p><h2>Aprenda direito</h2><p>Outra dica para novatos &eacute;, independentemente da linguagem que voc&ecirc; escolher, <strong>aprenda direito</strong>! Se voc&ecirc; aprender HTML codificando layouts com tabelas, isso n&atilde;o &eacute; nada certo &#8211; e eu tenho certeza que outros especialistas concordam comigo. Codificar usando os mais recentes padr&otilde;es da web parece in&uacute;til para alguns, mas &eacute; realmente importante e &eacute; altamente recomendado a aprender assim, j&aacute; que isso n&atilde;o vai s&oacute; melhorar a velocidade de carregamento de seus projetos, mas tamb&eacute;m ser&aacute; mais f&aacute;cil e far&aacute; mais sentido.</p><h2>Google &eacute; o seu melhor amigo</h2><p><img
class="alignleft size-full wp-image-755" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/10-coisas-desenvolvedores-web-iniciantes-devem-saber-google.jpg" alt="10 coisas que desenvolvedores web iniciantes devem saber: Google &eacute; seu amigo" width="250" height="154" />Realmente n&atilde;o importa que tipo de problema que voc&ecirc; tem, estou certo de Google pode resolv&ecirc;-lo (na maioria dos casos, pelo menos).</p><p>F&oacute;runs de programa&ccedil;&atilde;o s&atilde;o altamente recomendados, tamb&eacute;m, mas, antes de postar uma pergunta em algum f&oacute;rum, tente buscar uma solu&ccedil;&atilde;o no Google porque, na maioria das vezes, voc&ecirc; vai encontrar uma resposta para sua pergunta &#8211; ou, pelo menos, uma resposta que ir&aacute; gui&aacute;-lo para resolver a quest&atilde;o.</p><h2>Analise o c&oacute;digo alheio</h2><p>Isso vale principalmente para designers, mas, &agrave;s vezes, desenvolvedores t&ecirc;m conhecimentos de design de front-end e fazem seus pr&oacute;prios <em>layouts</em> antes de come&ccedil;ar a codific&aacute;-los. &Eacute; importante olhar outros sites para entender como eles s&atilde;o codificados. Se voc&ecirc; gosta de algum estilo ou elemento de um site, <strong>olhe para o c&oacute;digo fonte e o analise</strong>! O <a
href="http://getfirebug.com/">Firebug</a> funciona maravilhosamente bem nestes casos. Esta &eacute; a maneira pela qual a maioria das pessoas aprende a codificar.</p><p>O que n&atilde;o &eacute; aconselhado &eacute; roubar o design do alheio. Isso &eacute; imperdo&aacute;vel e digno de um &#8220;Que deselegante!&#8221;, al&eacute;m de mostrar uma falta de respeito e tremenda falta de profissionalismo, mas, geralmente, a comunidade de desenvolvedores n&atilde;o v&ecirc; maiores problema em &#8220;pegar emprestado&#8221; alguns trechos de c&oacute;digo (caso isso n&atilde;o infrinja alguma lei ou patente, claro).</p><p>Portanto, fica a &#8220;regrinha&#8221;: voc&ecirc; pode at&eacute; copiar algum c&oacute;digo aqui e ali &#8211; este &eacute; o caminho para aprender a fazer as coisas &#8211; mas nunca roube um design!</p><h2>Entre numa rede de conhecimentos</h2><p>Outra coisa importante &eacute; participar de uma rede dentro de seu campo de conhecimento. Nunca &eacute; demais conhecer outros desenvolvedores e designers. Um cen&aacute;rio n&atilde;o muito interessante &eacute; voc&ecirc; ter que voltar tr&aacute;s e buscar coisas no Google; um cen&aacute;rio melhor &eacute; voc&ecirc; ter discuss&otilde;es interessantes e poder obter ajuda atrav&eacute;s de discuss&otilde;es com pessoas da mesma &aacute;rea. Voc&ecirc; pode at&eacute; colaborar com seu colegas desenvolvedores em projetos maiores, o que, quase sempre, &eacute; bom para todos os envolvidos.</p><p>Voc&ecirc; est&aacute; perto de conseguir um projeto mas n&atilde;o tem certeza se voc&ecirc; pode lidar com o tipo de trabalho solicitado? Recomende um de seus colegas desenvolvedores! Ele(s) provavelmente ir&aacute;(&atilde;o) executar o trabalho melhor do que voc&ecirc; &#8211; se for(em) especialista(s) nessa &aacute;rea espec&iacute;fica &#8211; e voc&ecirc; pode fechar algum tipo de parceria em algum momento futuro. Fa&ccedil;a parte de uma rede e a mantenha ativa e sempre por perto. H&aacute; sempre a demanda por um desenvolvedor que esteja &#8220;ao redor&#8221;.</p><p>A pr&oacute;pria ideia de tradu&ccedil;&atilde;o deste artigo surgiu no <a
href="http://groups.google.com/group/html5-css3-brasil">grupo de discuss&atilde;o html5-css3-brasil</a> e viu como isso foi uma boa coisa?  ;-)</p><h2>Entenda os designers</h2><p>&Eacute; altamente aconselh&aacute;vel que voc&ecirc; compreenda os designers, caso n&atilde;o tem ideia de como eles trabalham. E isso vale tanto para designers gr&aacute;ficos quanto para front-end designers.</p><p>&Eacute; sempre bom para aprender como eles trabalham e porque eles podem entregar p&aacute;ginas est&aacute;ticas que realmente n&atilde;o correspondem aos mais recentes padr&otilde;es da web. Aprenda a conversar com eles e explicar o que est&aacute; errado e saber pedir para corrigir seus pr&oacute;prios erros. Dessa forma, sua rela&ccedil;&atilde;o de trabalho ser&aacute; mais pr&oacute;xima e o resultado bem melhor.</p><h2>Use ferramentas profissionais</h2><p><img
class="alignleft size-full wp-image-751" style="margin-right: 20px;" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/planejar-site-inicio-fim.jpg" alt="10 coisas que desenvolvedores web iniciantes devem saber: usar ferramentas profissionais" width="150" height="150" /></p><p>Apesar de HTML e CSS poderem ser feitos at&eacute; com o Bloco de Notas, isso n&atilde;o &eacute; recomendado. E, se isso n&atilde;o &eacute; aconselhado para HTML e CSS, &eacute; igualmente desaconselhado para PHP, ASP.net ou Ruby. Trabalhe com ferramenta profissionais como <a
href="http://www.eclipse.org/">Eclipse</a>, <a
href="http://aptana.com/">Aptana</a>, <a
href="http://netbeans.org/">NetBeans</a> ou outra qualquer, mas use o que os profissionais usam, caso contr&aacute;rio voc&ecirc; n&atilde;o ser&aacute; um deles!</p><p>Esse tipo de ferramenta verifica erros, tem autocomplete e d&aacute; sugest&otilde;es durante a codifica&ccedil;&atilde;o. H&aacute; uma raz&atilde;o pela qual Eclipse e NetBeans s&atilde;o 2 dos IDEs (<em>Integrated Development Environment</em> ou Ambiente de Desenvolvimento Integrado) mais usados no mundo: eles fazem o trabalho em grande estilo!</p><p>Ent&atilde;o comece a trabalhar agora, mesmo, com alguma ferramenta profissional, caso ainda n&atilde;o o tenha feito!</p><h2>Deixe as coisas legais por &uacute;ltimo</h2><p>Cada linguagem tem a sua pr&oacute;pria &#8220;vers&atilde;o cool&#8221;. Por exemplo, HTML tem HTML5, CSS tem CSS3, JavaScript e AJAX tem jQuery e assim por diante. &Eacute; muito melhor se voc&ecirc; aprender a linguagem b&aacute;sica e <strong>depois</strong> estudar mais at&eacute; chegar no est&aacute;gio <em>cool</em>. E, tamb&eacute;m, as coisas &#8220;cool&#8221; trabalham a partir dos elementos b&aacute;sicos, ent&atilde;o voc&ecirc; n&atilde;o ser&aacute; capaz de desenvolver e entender um controle deslizante com jQuery se voc&ecirc; n&atilde;o compreender o JavaScript b&aacute;sico.</p><h2>Mantenha-se informado e atualizado</h2><p><img
class="alignright size-full wp-image-756" style="margin-left: 20px;" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/10-coisas-desenvolvedores-web-iniciantes-devem-saber-matenha-se-atualizado.jpg" alt="10 coisas que desenvolvedores web iniciantes devem saber: mantenha-se atualizado" width="200" /></p><p><strong>&Eacute; sempre bom se manter informado e atualizado</strong> sobre o que est&aacute; acontecendo no mundo do desenvolvimento web, em especial da(s) &aacute;rea(s) que voc&ecirc; atua. Voc&ecirc; pode fazer isso atrav&eacute;s da leitura de feeds, livros &#8220;de verdade&#8221;, blogs e screencasts. Fique atualizado e certifique-se de que voc&ecirc; &eacute; um dos primeiros a oferecer produtos desenvolvidos com a tecnologia mais recente.</p><p>No come&ccedil;o, pode n&atilde;o funcionar muito (as pessoas podem querer manter o &#8220;velho&#8221; at&eacute; que as novas tecnologias mostrem seu valor), mas, certamente, tamb&eacute;m h&aacute; aquelas pessoas que querem ter um produto totalmente novo, desenvolvido com as mais recentes tecnologias &#8211; e isto lhe dar&aacute; uma vantagem e far&aacute; voc&ecirc; conhecido no ramo.</p><h2>Continue com o processo de aprendizagem</h2><p>Depois de se tornar um especialista no campo que escolheu, trilhe seu caminho rumo ao aprendizado de outras linguagens e/ou &aacute;reas de atua&ccedil;&atilde;o. Fique de olho aberto nas linguagens mais importantes e aprenda aquelas que julgar serem as mais interessantes. Quando voc&ecirc; domina duas, v&aacute; para a terceira e assim por diante.</p><p>E continue at&eacute;  que n&atilde;o haja muito mais para aprender &#8211; embora, como j&aacute; foi dito, isso seja imposs&iacute;vel. Este &eacute; o caminho para o sucesso!</p><h2>Conclus&atilde;o</h2><p>&Eacute; bastante comum que desenvolvedores iniciantes passem por tempos dif&iacute;ceis neste campo profundo do <strong>desenvolvimento web</strong>, mas estas dicas servem justamente para ajudar que cada um encontre seu caminho.</p><p>Nem sequer importa muito por onde come&ccedil;ar, tudo o que importa &eacute; voc&ecirc; comece! Isso geralmente &eacute; o que leva mais tempo, ent&atilde;o n&atilde;o desperdice estes dias preciosos e comece <strong>agora</strong> a estudar e a desenvolver a web!  ;-)</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/sobre-parcerias-de-trabalhos-de-desenvolvimento-web/" title="Sobre parcerias de trabalhos em desenvolvimento web">Sobre parcerias de trabalhos em desenvolvimento web</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/quando-o-cliente-pensa-que-sabe-mais/" title="Quando o cliente (pensa que) sabe mais">Quando o cliente (pensa que) sabe mais</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/web-sites-genericos-e-a-ilusao-dos-precos-baixos/" title="Web sites genéricos e a ilusão dos preços baixos">Web sites genéricos e a ilusão dos preços baixos</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/como-montar-um-portfolio-sem-ter-clientes/" title="Como montar um portfolio sem ter clientes">Como montar um portfolio sem ter clientes</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar/" title="Novas tecnologias exigem novas maneiras de se comunicar">Novas tecnologias exigem novas maneiras de se comunicar</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/2TMBctQU2dQjDjp_1OrG3pBlRd4/0/da"><img src="http://feedads.g.doubleclick.net/~a/2TMBctQU2dQjDjp_1OrG3pBlRd4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2TMBctQU2dQjDjp_1OrG3pBlRd4/1/da"><img src="http://feedads.g.doubleclick.net/~a/2TMBctQU2dQjDjp_1OrG3pBlRd4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Ygd9wRKYNA0:6pPnz-L9fC0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Ygd9wRKYNA0:6pPnz-L9fC0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Ygd9wRKYNA0:6pPnz-L9fC0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Ygd9wRKYNA0:6pPnz-L9fC0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Ygd9wRKYNA0:6pPnz-L9fC0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Ygd9wRKYNA0:6pPnz-L9fC0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/Ygd9wRKYNA0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/</feedburner:origLink></item> <item><title>Como otimizar códigos jQuery e aumentar a performance do front-end</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/PkgWol24zsA/</link> <comments>http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/#comments</comments> <pubDate>Mon, 26 Dec 2011 12:00:17 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[jquery]]></category> <category><![CDATA[Otimização]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=745</guid> <description><![CDATA[Dicas simples de como otimizar c&oacute;digos jQuery e aumentar a performance do front-end]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/otimizar-codigos-jquery-aumentar-performance-front-end.jpg" alt="Como otimizar c&oacute;digos jQuery e aumentar a performance do front-end: representa&ccedil;&atilde;o" title="" width="347" height="346" class="aligncenter size-full wp-image-747" /></p><p><strong>Otimizar c&oacute;digos jQuery</strong> em um site significa <strong>aumentar sua performance</strong>. E, como qualquer desenvolvedor web deveria saber, os componentes e recursos do front-end s&atilde;o respons&aacute;veis por, pelo menos, 80% da performance de p&aacute;ginas web!</p><p>O jQuery, em rela&ccedil;&atilde;o a JavaScript &#8220;puro&#8221;, j&aacute; &eacute; bem simples de se aprender e possui uma gama de recursos incr&iacute;vel! Entretanto, principalmente quem est&aacute; come&ccedil;ando e/ou ainda n&atilde;o entendeu bem a din&acirc;mica da biblioteca, desconhece alguma dicas simples que, se aplicadas, garantem que o desempenho seja aumentado escrevendo menos c&oacute;digo! &Eacute; isso que vamos ver neste artigo e aprender como melhorar c&oacute;digos jQuery para conseguir um desempenho melhor.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original <a
href="http://24ways.org/2011/your-jquery-now-with-less-suck"><span
lang="en">Your jQuery: Now With 67% Less Suck</span></a>, do blog <a
href="http://24ways.org/"><span
lang="en">24 ways</span></a> &#8211; e sofreu pequenas adapta&ccedil;&otilde;es.</div><h2>Otimiza&ccedil;&atilde;o de seletores</h2><p>Para come&ccedil;ar, vejamos como &eacute; poss&iacute;vel otimizar os seletores no jQuery, otimizando as consultas realizadas e aumentando a performance do c&oacute;digo.</p><h3>Velocidade de seletores</h3><p>Muito do poder do jQuery vem de sua capacidade de selecionar elementos DOM e agir/interagir com eles atrav&eacute;s de seus <a
href="http://api.jquery.com/category/selectors/" title="jQuery Selectors">selectors</a> e, atrav&eacute;s deles, o jQuery prov&ecirc; uma tonelada de maneiras de escolher qual(is) elemento(s) em uma p&aacute;gina se quer trabalhar. No entanto, um n&uacute;mero surpreendente de desenvolvedores web n&atilde;o sabe que os seletores n&atilde;o s&atilde;o todos iguais e que &eacute; incr&iacute;vel a diferen&ccedil;a de desempenho entre 2 seletores que, &agrave; primeira vista, parecem quase id&ecirc;nticos.</p><p>Como exemplo, vejamos 2 maneiras de selecionar todas as tags de par&aacute;grafo dentro de uma div com id espec&iacute;fico:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#id p'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#id'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>&Eacute; surpreendente o fato de que a segunda maneira pode ser <strong>2 vezes mais r&aacute;pida</strong>!</p><p>H&aacute; muitas maneiras diferentes de selecionar elementos usando jQuery; estas podem ser (virtualmente) divididas em 5 diferentes m&eacute;todos. Em ordem, do mais r&aacute;pido para o mais lento, s&atilde;o:</p><ul><li><code>$('#id')</code>. Sem d&uacute;vidas, este &eacute; o selector mais r&aacute;pido, j&aacute; que mapeia diretamente o <code>document.getElementbyId()</code> nativo do JavaScript. Sempre que poss&iacute;vel, os seletores descendentes devem ser feitos com um seletor de ID conjuntamente ao m&eacute;todo <a
href="http://api.jquery.com/find/" title="jQuery .find()">.find()</a>, que limita o escopo do que est&aacute; sendo pesquisado (tal como no exemplo <code>$('#id').find('p')</code> anterior).</li><li><code>$('p'), $('input'), $('form'), [...]</code>. Selecionar elementos pelo nome da tag tamb&eacute;m &eacute; r&aacute;pido, j&aacute; que mapeia diretamente para o m&eacute;todo nativo <code>document.getElementsByTagname()</code>.</li><li><code>$(".class")</code>. Selecionar por nome de classes &eacute; um pouco mais custoso. Enquanto isso &eacute; executado muito bem por navegadores modernos, pode ser que uma lentid&atilde;o seja causada em vers&otilde;es do IE baixo da 9. Por qu&ecirc;? Porque o IE9 foi a primeira vers&atilde;o do Internet Explorer a dar suporte para a fun&ccedil;&atilde;o <code>document.getElementsByClassName()</code>, nativa do JavaScript. Para interpretar isso, browsers mais antigos t&ecirc;m de recorrer ao usos de artif&iacute;cios bem mais custosos, que realmente afetam o desempenho do seletor.</li><li><code>$('[attribute="value"]')</code>. N&atilde;o h&aacute; nenhum m&eacute;todo JavaScript nativo para este tipo seletor, ent&atilde;o, a &uacute;nica maneira que pode realizar essa busca, &eacute; procurar por todo o DOM em busca de combina&ccedil;&otilde;es que satisfa&ccedil;am &agrave; condi&ccedil;&atilde;o do seletor. Navegadores modernos que suportam o m&eacute;todo <code>querySelectorAll()</code> ter&atilde;o um desempenho melhor em certos casos, mas, em geral, este tipo de seletor &eacute; bastante lento.</li><li><code>$(':hidden')</code>. Assim como o caso anterior, n&atilde;o existe um m&eacute;todo JavaScript nativo para usar este tipo de seletor. Pseudo-seletores podem ser extremamente lentos, j&aacute; que a consulta tem que ser executada em cada elemento da p&aacute;gina. Novamente, navegadores modernos que suportam o m&eacute;todo <code>querySelectorAll()</code> se saem ligeiramente melhores, mas tente evitar este tipo de sele&ccedil;&atilde;o. Se realmente for necess&aacute;rio, &eacute; poss&iacute;vel amenizar um pouco usando o <code>.find()</code>, como visto anteriormente. Por exemplo: <code>$('#list').find(':hidden')</code>.</li></ul><h3>Encadeamento</h3><p>Quase todos os m&eacute;todos jQuery retornam um <strong>objeto jQuery</strong>. Isto significa que, quando um m&eacute;todo &eacute; executado, seus resultados s&atilde;o retornados e &eacute; poss&iacute;vel continuar a implementa&ccedil;&atilde;o de mais m&eacute;todos em sequ&ecirc;ncia, o que &eacute; conhecido como  encadeamento ou <em>chaining</em>. Ao inv&eacute;s de escrever o mesmo seletor v&aacute;rias vezes, esta caracter&iacute;stica da biblioteca permite que v&aacute;rias a&ccedil;&otilde;es possam ser executadas de uma vez.</p><p>Sem encadeamento:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#object'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#object'</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;">'#F0F'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#object'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">300</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Com encadeamento:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#object'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'active'</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;">'#F0F'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">300</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Isto tem um duplo efeito ao tornar seu c&oacute;digo mais curto e mais r&aacute;pido. M&eacute;todos encadeados s&atilde;o executados mais rapidamente do que v&aacute;rios m&eacute;todos de um seletor em cache e, de ambos os jeitos, s&atilde;o muito mais r&aacute;pidos que v&aacute;rios m&eacute;todos atrav&eacute;s de seletores sem cache. Mas, esperem&#8230; &#8220;Seletor em cache&#8221;? O que &eacute; isso?</p><h3>Seletores em cache</h3><p>Outra maneira f&aacute;cil de melhorar a performance do c&oacute;digo jQuery &#8211; e que parece ser um mist&eacute;rio para a maioria dos desenvolvedores &#8211; &eacute; a ideia de fazer <strong>cache de seletores</strong>. Pense em quantas vezes voc&ecirc; acaba escrevendo o mesmo seletor em seus c&oacute;digos. Cada <code>$('.element')</code> tem que varrer todo o DOM procurando por combina&ccedil;&otilde;es o tempo todo, independentemente se este seletor tenha sido executado antes. Executando a sele&ccedil;&atilde;o uma vez e depois guardando o(s) resultado(s) em uma vari&aacute;vel, significa que a busca no DOM tem que ser feita apenas <strong>uma &uacute;nica vez</strong>. Uma vez que os resultados de um seletor tem sido armazenada em cache, &eacute; poss&iacute;vel fazer qualquer coisa com eles.</p><p>Primeiro, executa-se o seletor desejado (como exemplo, pegar todos os <code>li</code> dentro de uma <code>ul</code> de id &#8220;blocks&#8221;):</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> blocks <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#blocks'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Agora, &eacute; poss&iacute;vel usar a vari&aacute;vel <code>blocks</code> em qualquer lugar que se queira, sem ter que percorrer todo o DOM novamente em cada vez:</p><pre>
$('#hideBlocks').click(function(){
    blocks.fadeOut();
});
$('#showBlocks').click(function(){
    blocks.fadeIn();
});
</pre><p>Portanto, fica essa preciosa dica: qualquer seletor que &eacute; executado mais de uma vez deve ser armazenado em cache! Veja este <a
href="http://jsperf.com/ns-jq-cached/3">teste no jsperf</a> que mostra o qu&atilde;o mais r&aacute;pido e eficiente &eacute; um seletor cacheado em detrimento a um n&atilde;o cacheado.</p><h2>Delega&ccedil;&atilde;o de Evento ou Event Delegation</h2><p><em>Event listeners</em> consomem mem&oacute;ria. Em sites e aplica&ccedil;&otilde;es complexos n&atilde;o &eacute; incomum ter um monte de event listeners implementados e, felizmente, jQuery fornece m&eacute;todos realmente f&aacute;ceis para umaa gest&atilde;o eficiente event listeners atrav&eacute;s da delega&ccedil;&atilde;o.</p><p>Num exemplo extremo, imagine uma situa&ccedil;&atilde;o em que uma tabela 10×10 precisa ter um event listener em cada uma de suas c&eacute;lulas para que, quando ocorrer um clique em alguma delas, seja adiciona ou removida uma classe que define a cor de fundo da respectiva c&eacute;lula. Uma maneira comum de implementar isso (e algo bastante comum de ser visto em c&oacute;digos jQuery) &eacute;:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'td'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>O jQuery, a partir de sua vers&atilde;o 1.7, passou a oferecer um novo m&eacute;todo de escuta de eventos: <a
href="http://api.jquery.com/on/" title="jQuery .on()">.on()</a>. Ele age como um utilit&aacute;rio que envolve todos os <em>event listeners</em> anteriores do jQuery em um &uacute;nico e conveniente m&eacute;todo e a forma que ele &eacute; implementado determina como ele se comporta. Ao reescrever o exemplo acima usando .on(), tem-se o seguinte:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'td'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Bastante simples, certo? Mas o problema aqui &eacute; que, mesmo com a mudan&ccedil;a, o c&oacute;digo ainda conta com um <em>event listener</em> para cada c&eacute;lula da tabela&#8230; Uma maneira muito melhor de fazer isso funcionar &eacute; criar um <strong>&uacute;nico</strong> <em>event listener</em> para monitorar os eventos na pr&oacute;pria tabela! Uma vez que a maioria dos eventos faz <em>bubbling</em> (vai percorrendo seus ancestrais em sequ&ecirc;ncia) na &aacute;rvore do DOM, &eacute; poss&iacute;vel vincular um &uacute;nico listener para um elemento (neste caso, <code>table</code>) e esperar eventos serem disparados a partir de seus descendentes. A melhor maneira de fazer isso usando o <code>.on()</code> &eacute;:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'td'</span><span style="color: #339933;">,</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'active'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Com essa mudan&ccedil;a simples, o n&uacute;mero de <em>event listeners</em> passou de 100 (10&#215;10 c&eacute;lulas da tabela) para <strong>1</strong>! Acredite: a diferen&ccedil;a de performance entre os 2 exemplos acima &eacute; impressionante!</p><p>Se voc&ecirc; est&aacute; usando alguma vers&atilde;o do jQuery abaixo da 1.7, &eacute; poss&iacute;vel fazer a mesma coisa usando <a
href="http://api.jquery.com/delegate/" title="jQuery .delegate()">.delegate()</a>. A sintaxe &eacute; diferente, mas uma consulta &agrave; documenta&ccedil;&atilde;o vai esclarecer as coisas.</p><h2>Manipula&ccedil;&atilde;o de DOM</h2><p>Com jQuery &eacute; f&aacute;cil de manipular o DOM. &Eacute; trivial criar novos n&oacute;s, inserir, retirar outros, mudar as coisas ao redor e assim por diante. o c&oacute;digo para fazer isso &eacute; simples de escrever, mas, toda vez que o DOM &eacute; manipulado, o navegador tem que revisar o DOM, o que pode ser muito custoso e impactar a <strong>performance do front-end</strong>. Um exemplo evidente em que isso acontece &eacute; em um loop longo, seja atrav&eacute;s de um loop <code>for()</code>, <code>while()</code> ou <code>$.each()</code>.</p><p>Como exemplo, vamos supor que existe um array cheio de URLs de imagens de um banco de dados ou alguma chamada em AJAX e, o que se pretende, &eacute; colocar todas essas imagens numa lista n&atilde;o ordenada. Comumente, o c&oacute;digo que se encontra para isso &eacute;:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>reallyLongArrayOfImageURLs<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>arr<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>count<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> newImg <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;li&gt;&lt;img src=&quot;'</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">item</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;&gt;&lt;/li&gt;'</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#imgList'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>newImg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Existem alguns problemas com isso. Para come&ccedil;ar, h&aacute; a sele&ccedil;&atilde;o de <code>$('#ImgList')</code> em cada itera&ccedil;&atilde;o do loop &#8211; e, como vimos anteriormente, isso n&atilde;o &eacute; nada bom para a performance. O outro problema &eacute; que, a cada vez que o loop repete, &eacute; adicionado um novo <code>li</code> ao DOM. Cada uma dessas inser&ccedil;&otilde;es consome recursos e, se o array &eacute; muito grande, isso poderia levar a uma grande <strong>perda de performance</strong> ou, at&eacute; mesmo, ao temido alerta &#8220;Um script desta p&aacute;gina est&aacute; tornando a p&aacute;gina lenta&#8221;&#8230;</p><p>Uma outra maneira de implementar a solu&ccedil;&atilde;o &eacute;:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> arr <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>reallyLongArrayOfImageURLs<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    tmp <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
&nbsp;
$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>arr<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>count<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    tmp <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'&lt;li&gt;&lt;img src=&quot;'</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">item</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;&gt;&lt;/li&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#imgList'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>O que foi feito, aqui, foi a cria&ccedil;&atilde;o de uma vari&aacute;vel <code>tmp</code> para receber cada <code>li</code> criado. Quando o loop termina, a vari&aacute;vel cont&eacute;m todos os itens de lista na mem&oacute;ria e estes podem ser anexados ao <code>ul</code> todos de uma vez! Como navegadores trabalham melhor com opera&ccedil;&otilde;es de objetos na mem&oacute;ria ao inv&eacute;s de diretamente atualizando o DOM a cada vez, este c&oacute;digo &eacute; bem mais r&aacute;pido e eficiente!</p><h2>Conclus&atilde;o</h2><p>Logicamente, estas dicas de como otimizar c&oacute;digos jQuery para aumentar a performance do front-end n&atilde;o s&atilde;o as &uacute;nicas existentes, mas, certamente, est&atilde;o dentre as mais simples de implementar. Embora algumas das mudan&ccedil;as, individualmente, fa&ccedil;am apenas alguns mil&eacute;simos de segundo de diferen&ccedil;a, ao somar isso, dependendo de sua aplica&ccedil;&atilde;o, &eacute; poss&iacute;vel ter um <strong>aumento de performance de quase 70%</strong>!</p><p>Estudos mostram que o olho humano &eacute; capaz de discernir delays de 100ms (!), portanto, fazer algumas mudan&ccedil;as no c&oacute;digo pode, facilmente, ter um efeito not&aacute;vel sobre o modo (e a percep&ccedil;&atilde;o) de qu&atilde;o bem um seu site ou aplicativo &eacute; executado.</p><p>E voc&ecirc;, tem alguma outra dica de otimiza&ccedil;&atilde;o de c&oacute;digo jQuery para compartilhar? Comente!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/" title="Melhorando a interação em formulários de busca">Melhorando a interação em formulários de busca</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/" title="Ferramentas e recursos para desenvolvimento web">Ferramentas e recursos para desenvolvimento web</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/truques-de-configuracao-do-wordpress/" title="Truques de configuração do WordPress">Truques de configuração do WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/pergunte-se-a-si-mesmo-questoes-para-desenvolver-um-bom-site/" title="Pergunte-se a si mesmo: questões para desenvolver um bom site">Pergunte-se a si mesmo: questões para desenvolver um bom site</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/3nx_FxFVxFJCfd1x7Ah52u3QEjg/0/da"><img src="http://feedads.g.doubleclick.net/~a/3nx_FxFVxFJCfd1x7Ah52u3QEjg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3nx_FxFVxFJCfd1x7Ah52u3QEjg/1/da"><img src="http://feedads.g.doubleclick.net/~a/3nx_FxFVxFJCfd1x7Ah52u3QEjg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PkgWol24zsA:HKoG5SDfy34:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PkgWol24zsA:HKoG5SDfy34:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PkgWol24zsA:HKoG5SDfy34:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PkgWol24zsA:HKoG5SDfy34:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PkgWol24zsA:HKoG5SDfy34:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PkgWol24zsA:HKoG5SDfy34:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/PkgWol24zsA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/</feedburner:origLink></item> <item><title>Elementos de design aplicados à web</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/FEQUaZnwkQI/</link> <comments>http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/#comments</comments> <pubDate>Sun, 11 Dec 2011 10:00:01 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Layout]]></category> <category><![CDATA[Planejamento]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=735</guid> <description><![CDATA[Conhe&ccedil;a os princ&iacute;pios de design que v&atilde;o mostrar como projetos web designs mais eficientes e funcionais.]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-743" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elementos-design-aplicados-web.jpg" alt="Elementos do design aplicados &agrave; web: imagem representativa" width="300" height="299" /></p><p>O <strong>design</strong> &eacute; dividido em uma s&eacute;rie de princ&iacute;pios b&aacute;sicos que se aplicam a todo o projeto, seja ele do &#8220;mundo real&#8221; ou do mundo virtual. No entanto, especialmente na web, &agrave;s vezes essas regras tendem a ser esquecidas e n&oacute;s apenas trabalhamos com o que sentimos ser o &#8220;certo&#8221;.</p><p>Em uma das <a
href="http://desenvolvimentoparaweb.com/categoria/series/">s&eacute;ries</a> do <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a> foram abordados alguns dos principais estudos sobre Gestalt para web, e isso foi um grande passo sobre o que estamos tratando aqui, pois pudemos estudar como &eacute; a percep&ccedil;&atilde;o e entendimento das pessoas no ambiente online. Agora, veremos alguns dos <strong>elementos de design aplicados &agrave; web</strong>.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://astheria.com/design/the-elements-of-design-applied-totheweb">The Elements of Design Applied to the Web</a>&#8220;, do blog <a
href="http://astheria.com/">Astheria</a>, e sofreu pequenas adapta&ccedil;&otilde;es.</div><h2>Equil&iacute;brio</h2><p><strong>Equil&iacute;brio</strong> &eacute; um assunto complexo. Existem dois tipos de equil&iacute;brio: <strong>equil&iacute;brio sim&eacute;trico</strong> e <strong>equil&iacute;brio assim&eacute;trico</strong>. Quase todos n&oacute;s estamos familiarizados com imagens sim&eacute;tricas. A maioria de n&oacute;s, nos tempos de crian&ccedil;a, provavelmente j&aacute; fez algum tipo de recorte em papel de forma que o resultado final ficasse perfeitamente sim&eacute;trico. Enquanto o equil&iacute;brio sim&eacute;trico &eacute; f&aacute;cil de detectar (as coisas aparecem como imagens num espelho), o equil&iacute;brio assim&eacute;trico &eacute; menos percept&iacute;vel, mas, aparentemente, mais importante.</p><div
id="attachment_736" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-736" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-equilibrio.jpg" alt="Elementos de design aplicados &agrave; web: equil&iacute;brio assim&eacute;trico" width="466" height="401" /><p
class="wp-caption-text">Subtraction: exemplo de Equil&iacute;brio Assim&eacute;trico</p></div><p>A figura acima &eacute; um excelente exemplo de equil&iacute;brio assim&eacute;trico (aplicado em v&aacute;rios lugares), especialmente a imagem do cachorro. Nesse exemplo P&amp;B, a coloca&ccedil;&atilde;o do animal nessa posi&ccedil;&atilde;o deixa muito peso para o preto na metade esquerda da composi&ccedil;&atilde;o, que &eacute; equilibrada pelo aparentemente aleat&oacute;rios &#8220;X&#8221; na parede, &agrave; direita (1). Esta pequena adi&ccedil;&atilde;o cria um senso de equil&iacute;brio que quase faz voc&ecirc; se sentir como se o cachorro esteja no centro da imagem, quando, na verdade, ele n&atilde;o est&aacute;. <a
href="http://www.subtraction.com/">Confira</a>.</p><p>Enquanto a imagem do cachorro demonstra um equil&iacute;brio gr&aacute;fico h&aacute;, tamb&eacute;m, algum equil&iacute;brio assim&eacute;trico no cabe&ccedil;alho do site (2). A barra de menu &eacute; bastante pesada, tanto em seu tamanho, quanto na cor. No entanto, a linha mais fina acima de &#8220;Subtraction&#8221; usa o espa&ccedil;o negativo acima e abaixo para criar um equil&iacute;brio visual entre os dois. Ent&atilde;o, a &aacute;rea em branco acima da barra de menu fica como mesmo peso visual que a barra de navega&ccedil;&atilde;o preta mais abaixo.</p><p>Um desenho sim&eacute;trico, apesar de ser um conceito extremamente simples, pode ser surpreendentemente poderoso.</p><div
id="attachment_737" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-737" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-equilibrio-2.jpg" alt="Elementos de design aplicados &agrave; web: equil&iacute;brio sim&eacute;trico" width="466" height="466" /><p
class="wp-caption-text">Apple: exemplo de Equil&iacute;brio Sim&eacute;trico</p></div><p><a
href="http://www.apple.com/">Apple</a>, uma das atuais refer&ecirc;ncias de design, usa um layout completamente sim&eacute;trico em sua p&aacute;gina inicial (atualmente a p&aacute;gina deles est&aacute; diferente que a desse screenshot). Como voc&ecirc; pode ver na imagem, cada elemento &eacute; correspondido do outro lado da linha, criando uma harmonia visual simples.</p><h2>Propor&ccedil;&atilde;o</h2><p>Escolher o tamanho certo para os elementos vai al&eacute;m de simplesmente selecionar um tamanho leg&iacute;vel para o corpo do conte&uacute;do ou a largura das colunas. Deve-se levar em conta a <strong>propor&ccedil;&atilde;o</strong>, que est&aacute; entre o equil&iacute;brio e domin&acirc;ncia, baseados nas propor&ccedil;&otilde;es de certos objetos. Se num site &#8220;tradicional&#8221;, por exemplo, com uma coluna maior para conte&uacute;do e uma menor para menus e meta-informa&ccedil;&otilde;es, a coluna do conte&uacute;do &eacute; maior justamente por ser mais importante. Se os menus e meta-informa&ccedil;&otilde;es fossem colocados na coluna principal, certamente a primeira rea&ccedil;&atilde;o dos visitantes ser&aacute; de pensar que a p&aacute;gina n&atilde;o tem o conte&uacute;do que est&atilde;o procurando.</p><p>Enquanto algumas pessoas preferem usar <em>grids</em> com m&oacute;dulos fixos, outros preferem usar abordagens diferenciadas, tais como a usada aqui, no <a
href="http://desenvolvimentoparaweb.com">desenvolvimento para web</a> &#8211; pelo menos na data de publica&ccedil;&atilde;o deste artigo -, que tem como base a <a
href="http://pt.wikipedia.org/wiki/Propor%C3%A7%C3%A3o_%C3%A1urea" rel="nofollow">Propor&ccedil;&atilde;o &Aacute;urea</a>: a largura da coluna do conte&uacute;do &eacute;, aproximadamente, <strong>1,625</strong> maior que a coluna da barra lateral.</p><p>A propor&ccedil;&atilde;o tamb&eacute;m pode ser usado para, simplesmente, atribuir import&acirc;ncia a elementos na p&aacute;gina.</p><div
id="attachment_738" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-738" title="Coda: exemplo de Propor&ccedil;&atilde;o" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-proporcao.jpg" alt="" width="466" height="407" /><p
class="wp-caption-text">Elementos de design aplicados &agrave; web: propor&ccedil;&atilde;o</p></div><p>Apesar de a p&aacute;gina atual estar diferente deste screenshot, o pessoal da <a
href="http://www.panic.com/">Panic</a> fez um bom trabalho em usar elementos proporcionalmente dimensionados para atribuir n&atilde;o somente uma <strong>hierarquia visual</strong>, mas <strong>significado</strong> entre eles. Come&ccedil;ando com o logo do produto (1), passando, mais baixo, para as tr&ecirc;s <a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/">call to action</a> (2) &#8211; que s&atilde;o ligadas por tamanho e aspectos relacionais, como os &iacute;cones &agrave; esquerda &#8211; e, finalmente, t&iacute;tulos e texto importante (3). Combinado com um design muito unificado, esta p&aacute;gina &eacute; quase uma obra-prima da web (especialmente para os que adoram um javascript bem feito aplicado a <em>user interfaces</em>).</p><h2>Ritmo</h2><p><strong>Ritmo</strong> na web &eacute; algo presente principalmente em dados. &Eacute; especialmente importante para sites que cont&ecirc;m p&aacute;ginas compridas e/ou grandes quantidades de informa&ccedil;&atilde;o. Este screenshot do <a
href="http://digg.com">Digg</a> mostra que o site cai em ambas as situa&ccedil;&otilde;es e, tamb&eacute;m, &eacute; um excelente exemplo de ritmo atrav&eacute;s da repeti&ccedil;&atilde;o:</p><div
id="attachment_739" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-739" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-ritmo.jpg" alt="Elementos de design aplicados &agrave; web: ritmo" width="466" height="360" /><p
class="wp-caption-text">Digg: exemplo de Ritmo</p></div><p>O site cria um ponto de partida no cabe&ccedil;alho com sua navega&ccedil;&atilde;o horizontal estabelecendo a dire&ccedil;&atilde;o de leitura (1) para, logo em seguida, cair no conte&uacute;do principal, que &eacute; id&ecirc;ntico para cada artigo. Isso cria um ritmo consistente que o usu&aacute;rio segue inconscientemente (2). Esta t&eacute;cnica &eacute; repetida na barra lateral.</p><p>Uma boa maneira de pensar sobre o ritmo no design est&aacute; na mesma defini&ccedil;&atilde;o que vem &agrave; mente quando pensamos em m&uacute;sica. Cada projeto tem um pouco de um &#8220;pulso visual&#8221; que, dependendo de onde voc&ecirc; est&aacute; na p&aacute;gina, convida a uma leitura r&aacute;pida, uma pausa numa imagem interessante ou a uma orienta&ccedil;&atilde;o para um bot&atilde;o de download.</p><p>Um site que &eacute; muito consistente no seu ritmo pode sofrer no fato de que todos os elementos na p&aacute;gina acabam ficando com uma quantidade igual de peso ao redor, podendo deixar os visitantes ligeiramente desorientados. Muitas varia&ccedil;&otilde;es, por outro lado, podem fazer com que a p&aacute;gina se torne um caos! O importante &eacute; estabelecer uma <strong>coer&ecirc;ncia</strong> dentro de certas se&ccedil;&otilde;es do site, como demonstrado acima, no Digg: cada parte tem seu pr&oacute;prio ritmo interno, segundo seu prop&oacute;sito; mas, como um todo, a p&aacute;gina inteira &eacute; unificada e tudo instantaneamente tem significado apenas com base na <strong>cor</strong>, <strong>forma</strong> e <strong>propor&ccedil;&atilde;o</strong>.</p><h2>Domin&acirc;ncia (ou &Ecirc;nfase)</h2><p>N&atilde;o h&aacute; nada mais poderoso no design do que uma forma circular, especialmente em um mundo de ret&acirc;ngulos, como a web. Um c&iacute;rculo chama a aten&ccedil;&atilde;o simplesmente por sua forma. Ele n&atilde;o precisa ser especialmente vibrante em cores ou espa&ccedil;o em branco. E o melhor lugar para aproveitar todas essas boas caracter&iacute;sticas est&aacute; no logotipo.</p><div
id="attachment_740" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-740" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-dominancia-enfase.jpg" alt="Elementos de design aplicados &agrave; web: domin&acirc;ncia (ou &ecirc;nfase)" width="466" height="426" /><p
class="wp-caption-text">A List Apart: exemplo de Domin&acirc;ncia</p></div><p>Como &eacute; poss&iacute;vel ver na imagem, <a
href="http://www.alistapart.com/">A List Apart</a> est&aacute; usando n&atilde;o um, mas um par de c&iacute;rculos para fazer a <strong>domin&acirc;ncia</strong> ao seu logotipo (1). Isso &eacute; refor&ccedil;ado pelo s&iacute;mbolo com o n&uacute;mero da edi&ccedil;&atilde;o, adjacente ao logo. H&aacute;, tamb&eacute;m, outros &#8220;selinhos&#8221; como esse usados ​​no lado direito (2) para chamar a aten&ccedil;&atilde;o para algum ponto espec&iacute;fico (no caso, venda de camisetas).</p><p>Outra forma de alcan&ccedil;ar uma posi&ccedil;&atilde;o dominante &eacute; atrav&eacute;s do uso de espa&ccedil;o em branco e/ou cores. Estes podem ser combinados com uma forma dominante, mas, raramente, voc&ecirc; sempre precisa combinar todos eles; um ou dois geralmente j&aacute; &eacute; o suficiente.</p><div
id="attachment_741" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-741" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-dominancia-enfase-2.jpg" alt="Elementos de design aplicados &agrave; web: domin&acirc;ncia (ou &ecirc;nfase)" width="466" height="233" /><p
class="wp-caption-text">Google: outro exemplo de Domin&acirc;ncia</p></div><p>Google usa ambos, espa&ccedil;o em branco e domin&acirc;ncia de cores, para puxar o olho para a &aacute;rea principal da p&aacute;gina (1). O l&uacute;dico colorido do logotipo do Google, combinado com a quantidade de espa&ccedil;o em branco que envolve esta &aacute;rea, for&ccedil;a de seu olho a se concentrar l&aacute; imediatamente. Embora o Google pode fornecer excelentes resultados para as buscas, a chave para seu sucesso na web &eacute; a sua facilidade de uso, que &eacute; naturalmente f&aacute;cil de se usar devido a suas tend&ecirc;ncias visuais b&aacute;sicas.</p><h2>Unidade</h2><p>O conceito de <strong>unidade</strong> &eacute; muito mais aberto a interpreta&ccedil;&otilde;es. A unidade &eacute;, na verdade, um sentimento de que todos os elementos est&atilde;o ligados, conectados de alguma forma, e isso d&aacute; uma ideia de um todo. Um grande exemplo de unidade &eacute; o <a
href="http://www.okaydave.com/">portfolio de Dave Werner</a>, no qual cada p&aacute;gina do site apresenta escrita &agrave; m&atilde;o, alfinetes e todo o tipo de outros elementos que, quando analisados em conjunto, produzem um sentimento de unidade. N&atilde;o h&aacute; nada que se sente estar fora do lugar e tudo compartilha o mesmo estilo:</p><div
id="attachment_742" class="wp-caption aligncenter" style="width: 476px"><img
class="size-full wp-image-742" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/12/elemento-design-aplicados-web-dominancia-unidade.jpg" alt="Elementos de design aplicados &agrave; web: unidade" width="466" height="292" /><p
class="wp-caption-text">Dave Werner: exemplo de Unidade</p></div><p>Mesmo peda&ccedil;os do site que, como entidades separadas, naturalmente podem parecer diferentes umas das outras, s&atilde;o cobertas de notas e esbo&ccedil;os, trazendo at&eacute; mesmo esses aspectos do site para o portfolio. N&atilde;o h&aacute; nada no site que voc&ecirc; n&atilde;o esperaria ver alfinetado num quadro de camur&ccedil;a de projetos!  ;-)</p><h2>Conclus&atilde;o</h2><p>Embora ningu&eacute;m v&aacute; se tornar um &#8220;guru do design&#8221; somente com essas dicas, certamente essas explica&ccedil;&otilde;es e exemplos ajudam a conceber projetos de forma mais consciente, que podem impor a hierarquia visual necess&aacute;ria e realmente guiar os olhos do visitante atrav&eacute;s da p&aacute;gina da maneira que planejada.</p><p>Sem este tipo de estudo (e o de <a
href="http://desenvolvimentoparaweb.com/?s=gestalt">Gestalt aplicado ao web design</a>) esses elementos voc&ecirc; n&atilde;o ganha nada al&eacute;m de muito trabalho e retrabalho em busca de uma solu&ccedil;&atilde;o visual que voc&ecirc; <em>sinta</em> ser a certa ou a &#8220;bonita&#8221;. Os princ&iacute;pios, em si, s&atilde;o muito simples; o mais importante &eacute; estar ciente de que eles existem e, a partir de agora, come&ccedil;ar a refletir sobre eles na hora dos projetos e partir para a pr&aacute;tica que, como sabem aqueles que j&aacute; sentem um pouco da experi&ecirc;ncia dos anos de trabalho na &aacute;rea, sempre recompensa com trabalhos cada vez melhores.</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/" title="Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada">Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/ferramentas-criacao-wireframes/" title="Ferramentas para criação de wireframes">Ferramentas para criação de wireframes</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/" title="4 elementos de design para um bom call to action">4 elementos de design para um bom call to action</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/como-otimizar-imagens-web-internet/" title="Como otimizar imagens para web: guia de otimização de imagens">Como otimizar imagens para web: guia de otimização de imagens</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/8-caracteristicas-de-user-interfaces-ui-de-sucesso/" title="8 características de User Interfaces (UI) de sucesso">8 características de User Interfaces (UI) de sucesso</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/meta-tags/" title="Meta tags">Meta tags</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/8wbS9u-ty7AoZf-uZsanuHSetgg/0/da"><img src="http://feedads.g.doubleclick.net/~a/8wbS9u-ty7AoZf-uZsanuHSetgg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8wbS9u-ty7AoZf-uZsanuHSetgg/1/da"><img src="http://feedads.g.doubleclick.net/~a/8wbS9u-ty7AoZf-uZsanuHSetgg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=FEQUaZnwkQI:epNsNK4KgeQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=FEQUaZnwkQI:epNsNK4KgeQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=FEQUaZnwkQI:epNsNK4KgeQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=FEQUaZnwkQI:epNsNK4KgeQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=FEQUaZnwkQI:epNsNK4KgeQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=FEQUaZnwkQI:epNsNK4KgeQ:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/FEQUaZnwkQI" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/</feedburner:origLink></item> <item><title>Wireframes para web: guia completo de desenvolvimento</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/wUilw-SNAQ0/</link> <comments>http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/#comments</comments> <pubDate>Tue, 22 Nov 2011 16:13:58 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[Usabilidade]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Layout]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=674</guid> <description><![CDATA[Leia este Guia e tire todas as suas d&uacute;vidas sobre wireframes: conceitos, produ&ccedil;&atilde;o, teorias, programas, conceitos e conselhos.]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-733" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo.jpg" alt="Wireframes para web: guia completo de desenvolvimento" width="215" height="215" /></p><p><strong>Wireframes</strong> s&atilde;o uma das partes mais importantes de um projeto web, portanto, <strong>desenvolver wireframes para web sites</strong> &eacute; uma etapa que, mesmo frequentemente negligenciada, abandonada, mesmo, n&atilde;o o deveria ser.</p><p>Neste artigo, veja mais sobre a import&acirc;ncia desta etapa do projeto web e conhe&ccedil;a algumas diretrizes important&iacute;ssimas para se preparar <em>wireframes</em> de qualidade, que realmente fa&ccedil;am a diferen&ccedil;a na qualidade final e n&iacute;vel de profissionalismo e produtividade de seus <em>web projects</em>.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://sixrevisions.com/user-interface/website-wireframing/">Ultimate Guide to Website Wireframing</a>&#8220;, do blog <a
href="http://sixrevisions.com/">Six Revisions</a>, e sofreu pequenas modifica&ccedil;&otilde;es.</div><p>A maioria dos designers desenvolve wireframes para seus projetos, de uma forma ou de outra, mesmo que sejam apenas esbo&ccedil;os r&aacute;pidos na parte de tr&aacute;s de alguns pap&eacute;is de rascunho. Wireframe &eacute; uma parte importante do processo de <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a>, especialmente para projetos mais complexos.</p><h2>Por que fazer wireframes</h2><p><strong>Wireframes realmente s&atilde;o &uacute;teis</strong> quando voc&ecirc; est&aacute; se comunicando com clientes, pois lhes permite visualizar suas ideias mais facilmente do que quando voc&ecirc; apenas as descreve verbalmente. Para casos em que o &#8220;cliente&#8221; &eacute; a pr&oacute;prio empresa em que se trabalha ou para quando se tratam de projetos pessoais, a afirmativa tamb&eacute;m &eacute; verdadeira.</p><p>Ent&atilde;o, que esteja claro: desenvolver wireframes &eacute; realmente um passo <strong>necess&aacute;rio</strong> no processo de design! Mesmo se o site que se est&aacute; projetando seja incrivelmente minimalista e simples, fazer o wireframe ajuda a esclarecer exatamente o que precisa ser feito nos diferentes tipos de p&aacute;gina do projeto.</p><p
style="text-align: center;"><img
class="size-full wp-image-724 aligncenter" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-exemplo-wireframe.png" alt="Exemplo de um wireframe para uma p&aacute;gina web" width="550" height="519" /></p><p>Ao dedicar tempo para criar, pelo menos, um wireframe simples, tenha certeza de que seu web design levar&aacute; em conta todos os elementos das diferentes p&aacute;ginas que comp&otilde;em o projeto e precisam ir para o design. Al&eacute;m disso, eles estar&atilde;o posicionados na melhor localiza&ccedil;&atilde;o a que o estudo destes elementos chegou.</p><p>Al&eacute;m disso, o processo de <strong>produ&ccedil;&atilde;o de wire frames</strong> &eacute; muito mais<strong> simples</strong>, <strong>f&aacute;cil</strong> e <strong>barato</strong> de ser feito do que quando se &#8220;pula&#8221; essa etapa e se parte direto para o HTML/CSS: wireframes podem ser facilmente revistos, adaptados ou descartados.</p><h2>Wireframes x Modelos x Prot&oacute;tipos</h2><p>Wireframe, modelo (<em>mockup</em>) e prot&oacute;tipo s&atilde;o frequentemente usados ​​como sin&ocirc;nimos, mas s&atilde;o tr&ecirc;s coisas diferentes (embora, frequentemente, haja alguma sobreposi&ccedil;&atilde;o entre eles). Cada um tem um prop&oacute;sito diferente do outro e sua pr&oacute;pria import&acirc;ncia no processo de design:</p><ul><li><strong>Wireframes.</strong> S&atilde;o &#8220;ilustra&ccedil;&otilde;es b&aacute;sicas&#8221; da estrutura e componentes de uma p&aacute;gina web. Geralmente s&atilde;o o primeiro passo no processo de design (depois da concep&ccedil;&atilde;o mental, obviamente).</li><li><strong>Modelos.</strong> Geralmente focam sobre os elementos de design visual do site. S&atilde;o muitas vezes bastante pr&oacute;ximos ou id&ecirc;nticos ao web design final efetivo e incluem todos os gr&aacute;ficos, tipografia e outros elementos da p&aacute;gina. Mockups geralmente s&atilde;o apenas arquivos de imagem.</li><li><strong>Prot&oacute;tipos.</strong> S&atilde;o layouts semi-funcionais das p&aacute;ginas e servem para dar um <em>preview</em> de maior fidelidade do site real. Esta fase antecede a programa&ccedil;&atilde;o da l&oacute;gica de neg&oacute;cios do site. Enquanto eles n&atilde;o podem ter toda a funcionalidade, eles geralmente d&atilde;o aos clientes a capacidade de interagir com os elementos e simular a forma como o site ir&aacute;, eventualmente, trabalhar. Prot&oacute;tipos podem ou n&atilde;o incluir elementos de design finalizado.</li></ul><p><img
class="aligncenter size-full wp-image-725" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-diferenca-wireframe-modelo-prototipo.jpg" alt="Wireframe, Modelo e Prot&oacute;tipo: rascunho do fluxo de intera&ccedil;&atilde;o numa aplica&ccedil;&atilde;o mobile" width="550" height="450" />Em suma, o wireframe v&ecirc;m em primeiro lugar, seguido do modelo (ou mockup) e, caso seja poss&iacute;vel/vi&aacute;vel, haver&aacute; in&uacute;meros benef&iacute;cios ao se fazer o uso de prot&oacute;tipo (&agrave;s vezes chamado &#8220;<strong>wireframe funcional</strong>&#8220;).</p><h2>Como criar wireframes</h2><p>Criar wireframes &eacute; t&atilde;o simples ou t&atilde;o complicado quanto voc&ecirc; queira. Em sua forma mais b&aacute;sica, um wireframe poderia ser nada mais do que um esbo&ccedil;o numa folha de papel. Outros &#8220;wireframes&#8221; s&atilde;o criados digitalmente e s&atilde;o realmente mais como prot&oacute;tipos, com objetos clic&aacute;veis ​​e toda a interatividade prevista.</p><p>O <strong>tipo de wireframe</strong> que ser&aacute; criado vai depender do que o projeto demanda. Projetos mais complicados provavelmente requerem wireframes mais elaborados, enquanto sites simples pode ter wireframes simples.</p><h3>O que incluir em um wireframe</h3><p>Os wireframes devem incluir informa&ccedil;&otilde;es suficientes para refletir o que precisa aparecer em cada p&aacute;gina do projeto web. Pense sobre os elementos gerais da maioria das p&aacute;ginas web: cabe&ccedil;alhos, rodap&eacute;s, barras laterais, &aacute;reas de conte&uacute;do, meta-informa&ccedil;&atilde;o, busca, widgets, gr&aacute;ficos, etc. Depois de ter uma id&eacute;ia do que ter&aacute; o site, comece a criar os wireframes <strong>com base nesses elementos</strong>.</p><p>O qu&atilde;o detalhado deve ser o wireframe tamb&eacute;m depende do projeto e de sua finalidade. Se o wireframe servir&aacute; apenas como um documento orientador para refer&ecirc;ncia, ent&atilde;o talvez n&atilde;o seja uma boa ideia dar muito foco nesta etapa; por outro lado, se ele vai ser usado por mais de um designer ou desenvolvedor &#8211; ou apresentado a clientes &#8211; ent&atilde;o ele precisa ser melhor trabalhado.</p><h3>Wireframes de baixa fidelidade x Wireframes de alta fidelidade</h3><p>Existem algumas op&ccedil;&otilde;es quando se trata do &#8220;estilo&#8221; de wireframes. Alguns designers optam por <strong>wireframes de baixa fidelidade</strong> , que s&atilde;o basicamente linhas sobre um fundo liso com alguns r&oacute;tulos. Estes incluem tanto os desenhados a m&atilde;o, como wireframes digitais, e s&atilde;o geralmente muito simples.</p><div
id="attachment_726" class="wp-caption aligncenter" style="width: 560px"><img
class="size-full wp-image-726" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-wireframe-baixa-fidelidade.jpg" alt="Wireframes para web: exemplo de wireframe de baixa fidelidade" width="550" height="450" /><p
class="wp-caption-text">Wireframe de baixa fidelidade</p></div><p><strong>Wireframes de alta fidelidade</strong> v&atilde;o um passo al&eacute;m ao usando determinados elementos de design dentro do pr&oacute;prio wireframe. Isto pode incluir o logotipo ou alguns outros elementos gr&aacute;ficos b&aacute;sicos, bem como o esquema de cores e outros elementos visuais de design.</p><p>Wireframes assim come&ccedil;am a se aproximar do n&iacute;vel de modelos, mas eles podem ser inestim&aacute;veis ​​para transmitir uma sensa&ccedil;&atilde;o de como o site ser&aacute;, especialmente para os casos em que se tem dificuldade em vislumbrar como o site ser&aacute; ao ver wireframes de baixa fidelidade.</p><h3>T&eacute;cnicas para fazer wireframes</h3><p>Existem dezenas de maneiras diferentes para criar wireframes que v&atilde;o desde simples &#8211; caneta e esbo&ccedil;os em papel &#8211;  a diagramas mais complexos &#8211; que parecem quase t&atilde;o eficientes quanto sites em produ&ccedil;&atilde;o.</p><p>Existem, tamb&eacute;m, abordagens diferentes para o prop&oacute;sito e o racioc&iacute;nio por tr&aacute;s da cria&ccedil;&atilde;o de wireframes, dependendo das necessidades do projeto e dos designers envolvidos nisto.</p><p>Aqui est&atilde;o alguns recursos sobre diferentes procedimentos para a cria&ccedil;&atilde;o de wireframes para web (em ingl&ecirc;s):</p><ul><li><a
href="http://www.uxmatters.com/mt/archives/2007/01/wireframing-with-indesign-and-illustrator.php">Wireframes com InDesign e Illustrator</a>. Esse &eacute; um artigo da <a
href="http://www.uxmatters.com/"> UXmatters</a> sobre como criar wireframes usando Adobe InDesign e o Illustrator. Eles falam sobre o que o levou at&eacute; a decis&atilde;o de usar o InDesign e o Illustrator em detrimento a outros outros produtos at&eacute; chegar na parte sobre como usar esses 2 aplicativos para criar wireframes.</li><li><a
href="http://v3.jasonsantamaria.com/archive/2004/05/24/grey_box_method.php">M&eacute;todo Caixa Cinza</a>. Jason Santa Maria tem um post fant&aacute;stico sobre o &#8220;M&eacute;todo Caixa Cinza&#8221; de cria&ccedil;&atilde;o de wireframes. Ele descreve seu processo inteiro de cria&ccedil;&atilde;o de wireframes, desde esbo&ccedil;ar no papel at&eacute; criar uma escala de cinza no Illustrator. Artigo com v&aacute;rios exemplos.</li><li><a
href="http://visitmix.com/articles/the-future-of-wireframes">O Futuro dos Wireframes</a>. Inclui informa&ccedil;&otilde;es valiosas sobre processos e m&eacute;todos de cria&ccedil;&atilde;o de wireframes, especialmente em termos de como fazer o processo de wireframe melhor para designers, desenvolvedores e propriet&aacute;rios de sites.</li><li><a
href="http://thinkvitamin.com/design/20-steps-to-better-wireframing/">20 Passos para Fazer Wireframes Melhores</a>. Este artigo estabelece 20 passos sobre o que voc&ecirc; deve fazer para criar wireframes melhores. &Eacute; um post fant&aacute;stico para verificar se voc&ecirc; &eacute; completamente novo na arte de fazer wireframes ou apenas infeliz com o seu processo atual.</li></ul><h2>Processo do wireframe</h2><p>Existem muitas varia&ccedil;&otilde;es, mas h&aacute; um punhado de passos fundamentais para a <strong>cria&ccedil;&atilde;o de um wireframe</strong>. &Eacute; prov&aacute;vel que voc&ecirc; comece com uma lista de coisas que o site precisa incluir ou um documento de especifica&ccedil;&atilde;o formal de design. Outros j&aacute; gostam de come&ccedil;ar com um &#8220;olhar geral&#8221; do design e ir acrescentando detalhes, uma vez que se tem os fundamentos b&aacute;sicos do layout.</p><p>Quer voc&ecirc; decida rabiscar algumas coisas no papel ou trabalhar com algum <em>software</em>, ainda n&atilde;o descarte um ou outro m&eacute;todo. Alguns designers fazem esbo&ccedil;os no papel e depois os passam para software espec&iacute;ficos; outros v&atilde;o direto para o software; outros ainda ficam somente no &#8220;wireframe de papel&#8221;. Tenha em mente que, caso se depare com algum &#8220;entrave criativo&#8221;, mudar os formatos com que se trabalha pode fazer maravilhas para sua criatividade!</p><p>&Eacute; muito comum <strong>experimentar v&aacute;rias id&eacute;ias</strong> e possibilidades diferentes com wireframes antes de tomar decis&otilde;es finais em um projeto. Ali&aacute;s, &eacute; justamente para facilitar/agilizar isso que &eacute; muito bom trabalhar com wireframes, j&aacute; que, como se tem o m&iacute;nimo de tempo e energia investidos, &eacute; poss&iacute;vel facilmente fazer altera&ccedil;&otilde;es e tentar coisas novas.</p><p>Uma vez que um wireframe b&aacute;sico &eacute; criado, voc&ecirc; pode envi&aacute;-lo para outros membros da equipe para an&aacute;lise ou coloc&aacute;-lo um pouco de lado por 1 ou 2 dias para analisar novamente. Quando estiver satisfeito, &eacute; hora de mostr&aacute;-lo ao cliente ou, caso n&atilde;o seja o caso de haver um cliente, come&ccedil;ar a trabalhar em modelos baseados no wireframe.</p><p><img
class="aligncenter size-full wp-image-727" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-processo-wireframe.png" alt="Wireframes para web: processo do wireframe" width="550" height="444" /></p><h2>Ferramentas para criar wireframes</h2><p>Existem muitas ferramentas para wireframe dispon&iacute;veis. Algumas s&atilde;o feitas especificamente para wireframes, enquanto outros s&atilde;o mais gerais, apesar de cumprirem bem seu papel quando trabalho &eacute; esse.</p><p>As ferramentas que voc&ecirc; vai usar v&atilde;o depender de prefer&ecirc;ncia pessoal e dos requisitos do projeto. N&atilde;o h&aacute; &#8220;melhor&#8221; ferramenta para fazer wireframes, mas sim aquela na qual voc&ecirc; se sente melhor usando e que funciona melhor <strong>para voc&ecirc;</strong>.</p><h3>Papel e caneta</h3><p>Caneta (ou l&aacute;pis) e papel s&atilde;o as ferramentas mais b&aacute;sicas que voc&ecirc; pode usar para criar um wireframe. Tamb&eacute;m &eacute; &uacute;til usar papel quadriculado para criar elementos em propor&ccedil;&atilde;o.</p><p>Voc&ecirc; pode querer usar um l&aacute;pis para o seu esbo&ccedil;o inicial, para que voc&ecirc; possa apagar as coisas sem ter que come&ccedil;ar de novo. Ent&atilde;o, a medida que for finalizando os elementos, pode passar caneta por cima para evitar apagar o que n&atilde;o precisa mais ser apagado.</p><p>Voc&ecirc; tamb&eacute;m pode considerar usar canetas coloridas (ou l&aacute;pis coloridos) para diferenciar elementos e dar mais sentido ao <em>wireframe</em>. Por exemplo, uma cor para um grupo de elementos pode ser &uacute;til, pois ajuda a identificar instantaneamente outros itens.</p><div
id="attachment_728" class="wp-caption aligncenter" style="width: 560px"><img
class="size-full wp-image-728" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-wireframe-papel-caneta.jpg" alt="Wireframes para web: wireframe feito com papel e caneta" width="550" height="331" /><p
class="wp-caption-text">Wireframe com papel e caneta em papel quadriculado</p></div><h3>Programas para cria&ccedil;&atilde;o de wireframes</h3><p>Existem diversos programas para criar<em> wireframes</em> dispon&iacute;veis no mercado. Alguns s&atilde;o pagos, outros de gra&ccedil;a, outros mais completos e alguns nem tanto; mas todos com o objetivo de ajudar na cria&ccedil;&atilde;o de wireframes para facilitar e agilizar o processo de desenvolvimento web.</p><p>Recomendamos fortemente que d&ecirc; uma lida no artigo &#8220;<a
href="http://desenvolvimentoparaweb.com/usabilidade/ferramentas-criacao-wireframes/">Ferramentas para cria&ccedil;&atilde;o de wireframes</a>&#8220;. L&aacute; voc&ecirc; vai encontrar uma boa lista com os principais programas para cria&ccedil;&atilde;o de wireframes com descri&ccedil;&atilde;o e imagem de cada um.</p><h3>Modelos para wireframes</h3><p>Usar modelos (<em>templates</em>) para criar seus wireframes pode acelerar bastante o processo, especialmente se voc&ecirc; optar por usar caneta e papel ou programas que s&atilde;o capazer de cumprir este prop&oacute;sito (como o Adobe Illustrator). Veja alguns bons modelos, kits e elementos de interface gratuitos para serem usados na elabora&ccedil;&atilde;o de wireframes:</p><ul><li><a
href="http://www.fuelyourinterface.com/free-web-ui-wireframe-kit/">Free Web UI Wireframe Kit</a>. Fuel You Interface oferece, neste kit, diversos elementos para wireframes, tais como bot&otilde;es, breadcrumbs, caixas de di&aacute;logo, campos de busca e mais.</li><li><a
href="http://developer.yahoo.com/ypatterns/about/stencils/">Yahoo! Developer Network Design Stencils</a>. Conhecid&iacute;ssimo set de UI da Yahoo! para o desenvolvimento de wireframes. Eles disponibilizam os modelos para v&aacute;rios programas como OmniGraffle, Visio, Illustrator e Photoshop.</li><li><a
href="http://www.johnnynines.com/2009/03/wireframe-symbols/">Wireframe Symbols</a>. Cont&eacute;m formas e elementos diversos, como bot&otilde;es, cabe&ccedil;alhos, listas e tabelas para criar wireframes com o Illustrator.</li><li><a
href="http://www.jankoatwarpspeed.com/post/2009/12/24/sketching-wireframing-kit.aspx">Free Sketching &amp; Wireframing Kit</a>. Conjunto de elementos para wireframe dispon&iacute;vel em v&aacute;rios formatos de arquivo: Adobe Illustrator, SVG, PDF e EPS.</li><li><a
href="http://www.eleqtriq.com/2010/08/sqetch-wireframe-toolkit/">Sqetch</a>. Kit para Illustrator que inclui modelos e elementos, incluindo para iPad, elementos GUI e elementos de formul&aacute;rio.</li><li><a
href="http://www.dragnet.se/webbdesign/websitewireframes.html">Dragnet Kit for Fireworks</a>. Kit para Adobe Fireworks que inclui uma variedade de elementos da interface como bot&otilde;es, menus, combobox e abas.</li></ul><p>Frequentemente esta lista com <strong>modelos para wireframes</strong> ser&aacute; revisada e novas fontes ser&atilde;o inclu&iacute;das. Portanto, fique atento a este artigo para saber quando novos recursos forem disponibilizados.</p><h2>Utilize wireframes para pensar o projeto</h2><div
id="attachment_731" class="wp-caption alignleft" style="width: 260px"><img
class="size-full wp-image-731" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-exemplo-de-um-wireframe.jpg" alt="Wireframes para web: exemplo de um wireframe" width="250" height="250" /><p
class="wp-caption-text">Wireframe manual</p></div><p>Trabalhar com wireframes pode ser uma &oacute;tima maneira de pensar o design de um projeto web sem gastar horas trabalhando em modelos no Photoshop ou codificando projetos preliminares. A <strong>flexibilidade dos wireframes</strong> permite trabalhar com diversas id&eacute;ias de design e layout rapidamente e com pouco custo.</p><p>D&ecirc; uma olhada nos documentos de especifica&ccedil;&atilde;o de projeto; eles dir&atilde;o quais elementos s&atilde;o necess&aacute;rios para o site. Em seguida, comece a organizar tudo em wireframes. N&atilde;o tenha medo de tentar coisas n&atilde;o tradicionais nesta fase. Lembre-se: s&atilde;o apenas wireframes. Um erro ou uma tentativa fracassada neste momento, n&atilde;o definir&aacute; um fracasso ou far&aacute; com que voc&ecirc; tenha muito retrabalho. Libere sua criatividade nesta fase!</p><h2>Wireframes como resultado final do projeto</h2><p>Apresentar wireframes para o cliente pode ser uma valiosa forma de se certificar de que todos est&atilde;o em sintonia com o projeto antes de criar os modelos do projeto real. &Eacute; muito mais f&aacute;cil alterar a posi&ccedil;&atilde;o dos elementos quando voc&ecirc; est&aacute; trabalhando com wireframes do que quando est&aacute; com o projeto no Photoshop ou p&aacute;ginas j&aacute; codificadas.</p><p>Se for esse o caso, de haver a etapa de apresenta&ccedil;&atilde;o dos wireframes, isso tamb&eacute;m pode mostrar a habilidade do designer e agrega valor ao projeto, como um todo. Certifique-se, portanto, de que a etapa para cria&ccedil;&atilde;o, apresenta&ccedil;&atilde;o e aprova&ccedil;&atilde;o dos wire frames constam no escopo do projeto &#8211; e isso acarreta em um impacto no tempo total, obviamente &#8211; e, por consequ&ecirc;ncia, haver&aacute; um impacto no processo geral de design.</p><h3>Wireframe em rascunho x Wireframe elegante</h3><p>Um dos maiores considera&ccedil;&otilde;es ao criar wireframes que ser&aacute; apresentado &eacute; a forma como eles devem parecer. Geralmente h&aacute; duas formas de pensar sobre este assunto. Um ponto de vista sobre esta debate <strong>wireframe em rascunho</strong> contra <strong>wireframes elegantes</strong> (mais bem elaborados/apresentados) afirma que: tudo o que ser&aacute; apresentado a um cliente deve ser o mais polido e formalizado poss&iacute;vel.</p><p>O outro ponto de vista argumenta que oferecer ao cliente um wireframe &#8220;polido&#8221; faz do cliente menos propensos a solicitar altera&ccedil;&otilde;es, j&aacute; que as coisas passam o sentimento de &#8220;finalizado&#8221;. Em outras palavras, wireframes em rascunhos d&atilde;o mais margem para que o cliente n&atilde;o goste do resultado e/ou solicite mudan&ccedil;as. H&aacute; pr&oacute;s e contras em cada uma das abordagens.</p><p>Wireframes elegantes muitas vezes podem ajudar um cliente a visualizar melhor o layout do site e ter uma ideia melhor de como tudo vai funcionar e se parecer. Acrescentando coisas como cor ou gr&aacute;ficos voc&ecirc; chega ainda mais perto deste objetivo. No entanto, voc&ecirc; corre o risco de que seu cliente n&atilde;o oferece um <em>feedback</em> verdadeiro por sentir que a proposta j&aacute; est&aacute; &#8220;muito finalizada&#8221;.</p><div
id="attachment_732" class="wp-caption aligncenter" style="width: 560px"><a
href="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-wireframe-elegante.png"><img
class="size-full wp-image-732" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/11/wireframe-web-guia-completo-wireframe-elegante.png" alt="Wireframes para web: exemplo de wireframe elegante" width="550" height="450" /></a><p
class="wp-caption-text">Wireframe elegante</p></div><p>Por outro lado, wireframes em forma de rascunhos s&atilde;o mais como &#8220;id&eacute;ias cruas&#8221; e parecem mais convidativos ao <em>feedback</em> do cliente. A desvantagem &eacute; que os clientes que n&atilde;o s&atilde;o particularmente orientados visualmente &#8211; ou que n&atilde;o t&ecirc;m familiaridade com o que wireframes s&atilde;o &#8211; podem ter dificuldade em imaginar qual realmente &eacute; a proposta e como o site ir&aacute; se parecer no final de todo o desenvolvimento.</p><h2>Recursos de wireframes</h2><p>Para concluir este <strong>guia sobre desenvolvimento de wiframes</strong>, aqui est&atilde;o diversos recursos na web dedicados ao design/produ&ccedil;&atilde;o de wireframes:</p><ul><li><a
href="http://www.flickr.com/groups/ilovewireframes/">I ♥ Wireframes Flickr Group</a>. Milhares de wireframes para se ver e milhares de membros cadastrados colocando novos conte&uacute;dos com frequ&ecirc;ncia.</li><li><a
href="http://wireframes.tumblr.com/">I ♥ Wireframes Tumblr</a>. Excelente lugar para se ver muitos wireframes e se inspirar (&eacute; associado ao grupo do Flickr acima).</li><li><a
href="http://www.wireframeshowcase.com/">Wireframe Showcase</a>. Site que apresenta um &#8220;antes e depois&#8221;, mostrando wireframes com seus respectivos projetos finais. Excelente!</li><li><a
href="http://wireframes.linowski.ca/">Wireframes Magazine</a>. Cobre todas as coisas relacionadas a wireframe, incluindo toneladas de stencils e modelos, bem como exemplos para inspira&ccedil;&atilde;o.</li></ul><p>Esta lista de recursos para wireframes ser&aacute; constantemente atualizada. Fique ligado!</p><h2>Conclus&otilde;es</h2><p>Depois de acompanhar este <strong>guia completo de wireframes</strong>, &eacute; poss&iacute;vel chegar a algumas conclus&otilde;es importantes sobre o assunto.</p><p>Como o wireframe deve ser, depende do objetivo do projeto e/ou do perfil do cliente. Caso haja maior espa&ccedil;o para troca de ideias, opte pelo wireframes no estilo rascunho; caso apresente algo mais elegante, um wireframe melhor trabalhado &#8211; podendo at&eacute; conter cores, gr&aacute;ficos, etc -, o impacto da apresenta&ccedil;&atilde;o &eacute; melhor, contudo, isso n&atilde;o abre tanto espa&ccedil;o para discuss&otilde;es, pois causa sentimentos de completude e imutabilidade.</p><p>De qual maneira se vai fazer os wireframes, tamb&eacute;m &eacute; algo opcional: h&aacute; pessoas que preferem wireframes em papel e caneta; outros em programas de editora&ccedil;&atilde;o de imagens; e ainda os que preferem programas espec&iacute;ficos para constru&ccedil;&atilde;o de wireframes, modelos e prot&oacute;tipos. Mais uma vez, &eacute; voc&ecirc; quem decide qual destes ser&aacute; melhor.</p><p>Deve haver, no projeto, a important&iacute;ssima etapa de elabora&ccedil;&atilde;o de wireframes. &Eacute; preciso que dentro do prazo &#8211; e or&ccedil;amento &#8211; conste os per&iacute;odos estimados para a feitura, edi&ccedil;&atilde;o, entrega, feedback e revis&atilde;o de cada wireframe. &Eacute; logicamente mais r&aacute;pido, f&aacute;cil e dispende menos recursos financeiros se alterar elementos num wireframe do que numa estrutura HTML/CSS j&aacute; pronta.</p><p>Caso queira que seu projeto dispense retrabalhos e que poss&iacute;veis mudan&ccedil;as sejam pensadas e mostras de maneira mais r&aacute;pida, podendo ser feitas com um custo baix&iacute;ssimo, ent&atilde;o <strong>usar wireframes em seus projetos &eacute; de extrema import&acirc;ncia!</strong></p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/" title="4 elementos de design para um bom call to action">4 elementos de design para um bom call to action</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/" title="Melhores editores WYSIWYG para seu projeto">Melhores editores WYSIWYG para seu projeto</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/diferencas-entre-ids-e-classes/" title="Diferenças entre IDs e Classes">Diferenças entre IDs e Classes</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/" title="10 dicas que desenvolvedores web iniciantes devem saber">10 dicas que desenvolvedores web iniciantes devem saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/oJmsSdl7zB1SiOMgcJzZbkHI9mM/0/da"><img src="http://feedads.g.doubleclick.net/~a/oJmsSdl7zB1SiOMgcJzZbkHI9mM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oJmsSdl7zB1SiOMgcJzZbkHI9mM/1/da"><img src="http://feedads.g.doubleclick.net/~a/oJmsSdl7zB1SiOMgcJzZbkHI9mM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=wUilw-SNAQ0:_GlmMQ7Pz64:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=wUilw-SNAQ0:_GlmMQ7Pz64:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=wUilw-SNAQ0:_GlmMQ7Pz64:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=wUilw-SNAQ0:_GlmMQ7Pz64:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=wUilw-SNAQ0:_GlmMQ7Pz64:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=wUilw-SNAQ0:_GlmMQ7Pz64:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/wUilw-SNAQ0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/</feedburner:origLink></item> <item><title>10 erros básicos de web design</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/OPeZYaJ8Epw/</link> <comments>http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/#comments</comments> <pubDate>Wed, 14 Sep 2011 13:38:39 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Layout]]></category> <category><![CDATA[Web Design]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=710</guid> <description><![CDATA[Conhe&ccedil;a 10 erros b&aacute;sicos de web design e aprenda como evit&aacute;-los para tornar seus projetos web mais profissionais.]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-715" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/09/web-design-erros-basicos.png" alt="Web design: 10 erros b&aacute;sicos" width="128" height="128" /></p><p>Uma das principais &aacute;reas do <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a> &eacute; o <strong>web design</strong>. Ao se comunicar com outras &aacute;reas correlatas, &eacute;  atrav&eacute;s de um bom planejamento visual que o web design proporciona uma boa experi&ecirc;ncia visual ao visitante, garantindo que a qualidade do projeto web seja incrementada e esteja mais perto do sucesso!</p><p>O contr&aacute;rio disso &eacute; um web design que n&atilde;o consegue atender &agrave;s necessidades do projeto e acaba por piorar a situa&ccedil;&atilde;o&#8230; Para corrigirmos um problema, &eacute; preciso conhec&ecirc;-los antes; por isso, vamos a essa lista de <strong>10 erros b&aacute;sicos de web design</strong> que voc&ecirc; deve evitar!</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original <a
href="http://www.1stwebdesigner.com/design/basic-visual-web-design-mistakes/">10 Basic Visual Web Design Mistakes</a>, do blog <a
href="http://www.1stwebdesigner.com">1WD.CO</a> e sofreu algumas adapta&ccedil;&otilde;es.</div><p>Acredito que as pessoas t&ecirc;m tanta experi&ecirc;ncias em ver/analisar web design quanto &eacute; seu tempo de navega&ccedil;&atilde;o na web. Eu poderia garantir que voc&ecirc; v&ecirc; mais web design ruim do que bom. Eu tamb&eacute;m vejo dessa maneira: existe um monte de sites que tem web design ruim. A seguir, veja 10 erros b&aacute;sicos de web design para que voc&ecirc; possa analisar e saber o que <strong>n&atilde;o deve</strong> fazer em seus sites!</p><h2>Erro b&aacute;sico de web design 1: usar fontes ruins</h2><p
style="text-align: center;"><img
class="aligncenter size-full wp-image-712" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/09/erro-basico-web-design-fontes-ruins.jpg" alt="Erro b&aacute;sico de web design: usar fontes ruins" width="570" height="133" /></p><p>Sabe quando voc&ecirc; visita um site com com uma fonte t&atilde;o estranha ou extravagante que fica muito dif&iacute;cil de ler? Determinadas fontes &#8220;extravagantes&#8221; n&atilde;o devem ser usado no corpo do texto, caso contr&aacute;rio, o leitor n&atilde;o ser&aacute; capaz de ler e/ou a leitura ficar&aacute; t&atilde;o cansativa a ponte de fazer com que esse visitante desista da leitura e abandone o site.</p><p>Use fontes que s&atilde;o <strong>f&aacute;ceis de ler</strong>!</p><p>Outro erro &eacute; que algumas pessoas usam fonte n&atilde;o-padr&atilde;o em seus sites. Se o seu leitor &eacute; apenas uma pessoa comum que n&atilde;o t&ecirc;m tantas fontes adicionais instaladas, ele vai se confundir e dizer: &#8220;Por que &eacute; que o tamanho da fonte deste site &eacute; t&atilde;o pequena?&#8221;. Infelizmente, isso faz as pessoas se queixarem sobre o site. Basta usar font comuns como Arial, Helvetica, Verdana, Georgia, ou Times New Roman, que a grande maioria tem em seu computador.</p><h2>Erro b&aacute;sico de web design 2: n&atilde;o usar imagens, apenas texto puro</h2><p>Acredite, as pessoas v&atilde;o ficar entediadas se veem apenas texto e deixar&atilde;o seu site uma vez que est&atilde;o cansados ​​de ler um oceano de palavras&#8230; Isso &eacute; internet, n&atilde;o um livro de auto-ajuda. Se voc&ecirc; n&atilde;o tem id&eacute;ia sobre que imagem voc&ecirc; deve colocar, basta usar qualquer imagem relacionada com o t&iacute;tulo do conte&uacute;do. Evite deixar o &#8220;corpo&#8221; do texto sozinho, sem qualquer imagem.</p><p>Obviamente que existem algumas (que podem ser consideradas) exce&ccedil;&otilde;es, como manuais t&eacute;cnicos, sites com tutoriais espec&iacute;ficos e afins. Mas, ainda nestes casos, sempre que poss&iacute;vel &eacute; interessante inserir algumas imagens/ilustra&ccedil;&otilde;es contextualizadas.</p><h2>Erro b&aacute;sico de web design 3: textos longos sem par&aacute;grafos</h2><p>Mesmo que voc&ecirc; tenha inserido imagens no conte&uacute;do de seu site, &eacute; importante lembrar de separar as coisas usando par&aacute;grafos. Imagine que voc&ecirc; est&aacute; lendo um artigo com mais de 500 palavras sem qualquer par&aacute;grafo. &Eacute; cansativo e pode ser confuso! Com algumas frases separadas por par&aacute;grafos, as pessoas conseguir&atilde;o ler seus conte&uacute;dos com mais facilidade.</p><p>Mas acho que todos que cursaram o prim&aacute;rio j&aacute; sabem disso, n&atilde;o &eacute;?  ;-)</p><h2>Erro b&aacute;sico de web design 4: fonte muito pequena</h2><p><img
class="aligncenter size-full wp-image-713" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/09/erro-basico-web-design-fonte-muito-pequena.jpg" alt="Erro b&aacute;sico de web design: fonte muito pequena" width="570" height="133" /></p><p>Alguma vez voc&ecirc; j&aacute; visitou um site e voc&ecirc; teve que ampliar o tamanho da fonte atrav&eacute;s de recursos do navegaor para ler o conte&uacute;do? Isso &eacute; ruim. Fa&ccedil;a com que seu texto tenha um tamanho equivalente de, pelo menos, 12pt, para se certificar de que o conte&uacute;do ser&aacute; leg&iacute;vel o suficiente. Se n&atilde;o, as pessoas ter&atilde;o que apelar para ferramentas de terceiros e, certamente, podem querer ir para um site que n&atilde;o tenha o mesmo problema&#8230;</p><p>Adicionalmente, voc&ecirc; pode fornecer aos visitantes uma ferramenta simples para controle do tamanho da fonte. Com isso, mesmo usando o texto com um tamanho m&iacute;nimo aceit&aacute;vel, os visitantes que, mesmo assim, quiserem algo maior, ter&atilde;o essa possibilidade de personaliza&ccedil;&atilde;o e facilita&ccedil;&atilde;o de sua leitura.</p><h2>Erro b&aacute;sico de web design 5: flash muito pesado</h2><p>Quando se opta por utilizar Flash em um site, geralmente o objetivo &eacute; agregar valor &agrave; percep&ccedil;&atilde;o visual dos visitantes. Infelizmente, o uso do flash faz com que o site seja mais lento para abrir e aumenta as chances de os visitantes deix&aacute;-lo rapidamente. Reduza o uso de Flash, a menos que seja extremamente necess&aacute;rio para alguma fun&ccedil;&atilde;o espec&iacute;fica.</p><p>Assim que o HTML5 ficar mais madura e amplamente utilizado, provavelmente esta dica ficar&aacute; obsoleta.</p><h2>Erro b&aacute;sico de web design 6: texto por cima de background coloridos</h2><p>A maioria dos web sites usam backgrounds de cor &uacute;nica para melhorar a legibilidade. Se voc&ecirc; pensa que usar fundo colorido vai tornar as coisas melhores e mais agrad&aacute;veis, voc&ecirc; est&aacute; absolutamente errado! Isso s&oacute; faz as pessoas ficarem cansadas de ler seu conte&uacute;do, porque a cor do texto se mistura com o background.</p><p>Perceba que n&atilde;o h&aacute; &#8220;proibi&ccedil;&otilde;es&#8221; em usar cores para o background, o problema est&aacute; em usar patterns ou imagens sem tratamento algum que, inevitavelmente, fazem com que a experi&ecirc;ncia de leitura seja um desastre&#8230; <strong>Bom senso</strong>, pessoal!</p><h2>Erro b&aacute;sico de web design 7: publicidade demais</h2><p><img
class="aligncenter size-full wp-image-714" title="" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/09/erro-basico-web-design-publicidade-demais.jpg" alt="Erro b&aacute;sico de web design: publicidade demais" width="570" height="133" /></p><p>Provavelmente voc&ecirc; j&aacute; deve ter visto sites cheio de banner e an&uacute;ncios de publicidade, das mais variadas maneiras e possibilidades cab&iacute;veis. Voc&ecirc;, mesmo, pode dizer o qu&atilde;o desagrad&aacute;vel isso &eacute;, sem ningu&eacute;m falar pra isso pra voc&ecirc;. Jamais priorize an&uacute;ncios em detrimento do conte&uacute;do!</p><p>Bons web sites sempre colocam an&uacute;ncios em lugares estrat&eacute;gicos de modo a n&atilde;o incomodar o visitante e n&atilde;o atrapalhar o conte&uacute;do principal. Inspirar-se nos bons geralmente &eacute; uma boa estrat&eacute;gia.</p><h2>Erro b&aacute;sico de web design 8: pop ups indesejados</h2><p>Eu odeio (e tenho certeza de que voc&ecirc;, tamb&eacute;m) sites com pop-ups indesej&aacute;veis! Eles realmente irritam! Eu quero olhar para a informa&ccedil;&atilde;o, mas o pop up interfere e faz com que eu perca meu tempo. Existe um motivo pra isso, claro, mas isso continua sendo um ato odi&aacute;vel&#8230;</p><h2>Erro b&aacute;sico de web design 9: conte&uacute;dos muito extensos</h2><p>Conte&uacute;dos (como artigos, por exemplo) muito extensos causam um efeito: geralmente as pessoas ficam entediadas para l&ecirc;-los&#8230; Algumas pessoas apregoam a diretiva de que conte&uacute;dos devem ter, no m&aacute;ximo, 1000 palavras &#8211; com alguma adi&ccedil;&atilde;o de imagem para torn&aacute;-lo mais atraente do que um texto simples. Pessoalmente, n&atilde;o sou muito apegado a n&uacute;meros precisos e sim ao <strong>bom senso</strong>. Este artigo que voc&ecirc; est&aacute; lendo neste exato momento, por exemplo, tem mais de 1000 palavras mas, segundo o contexto em que est&aacute;, n&atilde;o &eacute; cansativo.</p><p>O importante &eacute; fazer suas palavras simples e compreens&iacute;veis e ter em mente que a maioria das pessoas n&atilde;o gosta de artigos muito longos, mas que isso n&atilde;o &eacute; uma verdade absoluta e que esta &#8220;regra&#8221; pode ser &#8220;flex&iacute;vel&#8221;, dependendo do nicho a que o conte&uacute;do est&aacute; destinado.</p><h2>Erro b&aacute;sico de web design 10: links invis&iacute;veis</h2><p>Certifique-se de que a cor do link tenha uma cor diferente do texto simples. Simplesmente isso. Isso ajuda o leitor a identificar quais os links que visitaram e tamb&eacute;m o ajuda a n&atilde;o clicar nos links sem querer. Uma dica b&aacute;sica sobre <a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/">boas user interfaces</a> que &eacute; preciosa e n&atilde;o deve ser negligenciada.</p><p>Alguns ainda afirmar que a cor dos links deve ser diferente da cor dos t&iacute;tulos. Pessoalmente, n&atilde;o vejo muita necessidade para isso j&aacute; que, teoricamente, a apresenta&ccedil;&atilde;o de um t&iacute;tulo &eacute; bem diferente da apresenta&ccedil;&atilde;o de um link textual. De qualquer forma, fica a seu crit&eacute;rio.</p><h2>Conclus&atilde;o sobre erros de web design</h2><p>Como vimos, estes s&atilde;o 10 erros b&aacute;sicos de web design que voc&ecirc; deve evitar cometer em seus projetos web. Evidentemente, nenhuma das dicas aqui apresentadas s&atilde;o inflex&iacute;veis e/ou constituem-se verdades absolutas. Como j&aacute; tivemos a oportunidade de ressalvar em diversos artigos aqui no <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a>, no fim das contas, o que melhor guia seu projeto ao sucesso &eacute; o seu bom senso!</p><p>E voc&ecirc;, apontaria mais algum erro b&aacute;sico de web design? Comente!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/rolagem-fundo-transparente-css/" title="Rolagem com fundo transparente com CSS">Rolagem com fundo transparente com CSS</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/7-ferramentas-para-web-designs-melhores/" title="7 ferramentas para web designs melhores">7 ferramentas para web designs melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/" title="4 elementos de design para um bom call to action">4 elementos de design para um bom call to action</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/diferencas-entre-ids-e-classes/" title="Diferenças entre IDs e Classes">Diferenças entre IDs e Classes</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/css-float-consideracoes-dicas-e-macetes-para-bons-layouts-na-web/" title="CSS float: considerações, dicas e macetes para bons layouts na web">CSS float: considerações, dicas e macetes para bons layouts na web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-6-principio-da-experiencia-passada/" title="Gestalt aplicado ao design web (parte 6): princípio da experiência passada">Gestalt aplicado ao design web (parte 6): princípio da experiência passada</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-5-exemplos-web-do-principio-do-alinhamento/" title="Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento">Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/CD9sdqVA1gLgkdn2kO3fkTSMcMk/0/da"><img src="http://feedads.g.doubleclick.net/~a/CD9sdqVA1gLgkdn2kO3fkTSMcMk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CD9sdqVA1gLgkdn2kO3fkTSMcMk/1/da"><img src="http://feedads.g.doubleclick.net/~a/CD9sdqVA1gLgkdn2kO3fkTSMcMk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=OPeZYaJ8Epw:LLc4yvyN9VI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=OPeZYaJ8Epw:LLc4yvyN9VI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=OPeZYaJ8Epw:LLc4yvyN9VI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=OPeZYaJ8Epw:LLc4yvyN9VI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=OPeZYaJ8Epw:LLc4yvyN9VI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=OPeZYaJ8Epw:LLc4yvyN9VI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/OPeZYaJ8Epw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/</feedburner:origLink></item> <item><title>JSON – JavaScript Object Notation</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/ZJ5Xk5ypVxE/</link> <comments>http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/#comments</comments> <pubDate>Wed, 22 Jun 2011 13:16:57 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[javascript]]></category> <category><![CDATA[php]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Exemplos]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=662</guid> <description><![CDATA[JSON - JavaScript Object Notation - &eacute; uma das principais nota&ccedil;&otilde;es para interc&acirc;mbio de dados entre aplicativos. Saiba mais e veja exemplos e ferramentas.]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><img
class="aligncenter size-full wp-image-663" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/08/json-javascript-object-notation.jpg" alt="JSON - JavaScript Object Notation" width="160" height="243" /></p><p>J&aacute; n&atilde;o &eacute; nenhuma novidade no mundo de <a
title="desenvolvimento para web" href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a> o uso e abuso da tecnologia <strong>JSON</strong>. Entretanto, nem todos conhecem este padr&atilde;o de interc&acirc;mbio facilitado de dados entre aplica&ccedil;&otilde;es. N&atilde;o &eacute; obrigat&oacute;rio, mas saber JSON pode ser bastante &uacute;til em projetos um pouco mais sofisticados e/ou que necessitam de uma demanda/pol&iacute;tica de transfer&ecirc;ncia de dados mais simples, leve e eficiente.</p><p>Usar JSON proporciona in&uacute;meras vantagens ao desenvolvedor web. Desde a simplicidade em tratar os dados &agrave; maneira f&aacute;cil como &eacute; poss&iacute;vel integrar tecnologias <em>client-side</em> com <em>server-side</em>, o JSON certamente &eacute; bastante recomendado.</p><h2>O que &eacute; e para que serve JSON</h2><p>JSON &eacute; o acr&ocirc;nimo para &#8220;<strong>JavaScript  Object  Notation</strong>&#8220;. Como &eacute; poss&iacute;vel notar pelo nome, originalmente o JSON foi concebido para se trabalhar com javascript, mas, j&aacute; adiantando, n&atilde;o &eacute; necessariamente obrigat&oacute;rio o uso de javascript para seu uso, dado que, atualmente, &eacute; poss&iacute;vel utilizar JSON com mais de 20 linguagens de programa&ccedil;&atilde;o diferentes.</p><p>Uma defini&ccedil;&atilde;o interessante &eacute; a do Wiki&eacute;dia:</p><blockquote><p>JSON (com a pronuncia djeis&oacute;n), um acr&ocirc;nimo para &#8220;JavaScript  Object  Notation&#8221;, &eacute; um formato leve para interc&acirc;mbio de dados computacionais. JSON &eacute; um subconjunto da nota&ccedil;&atilde;o de objeto de JavaScript, mas seu uso n&atilde;o requer javascript, exclusivamente.</p><p>O formato JSON foi originalmente criado por Douglas Crockford e &eacute; descrito no <a
href="http://tools.ietf.org/html/rfc4627">RFC 4627</a>. O media-type oficial do JSON &eacute;<em> application/json</em> e a extens&atilde;o &eacute; <em>.json</em>.</p></blockquote><p>Mas uma defini&ccedil;&atilde;o que explica, de forma bem mais simples e objetiva, &eacute; a de <a
href="http://blog.thiagobelem.net/">Tiago Belem</a>, em seu artigo &#8220;<a
href="http://blog.thiagobelem.net/php/introducao-a-json-e-php-webservices/">Introdu&ccedil;&atilde;o a JSON e PHP</a>&#8220;, no qual consta que</p><blockquote><p>JSON &eacute; um padr&atilde;o de formata&ccedil;&atilde;o de dados que ser&atilde;o transmitidos entre duas aplica&ccedil;&otilde;es de linguagens diferentes.</p></blockquote><p>Quer dizer, JSON &eacute; usado, principalmente, para <strong>permitir a troca de dados entre linguagens</strong>. Mas n&atilde;o s&oacute; isso, ele tamb&eacute;m &eacute; &oacute;timo para lidar com <em>webservices</em> e tem muitos outros usos.</p><h2>Vantagens em se usar JSON</h2><p>A descri&ccedil;&atilde;o de dados em JSON &eacute; bem f&aacute;cil, n&atilde;o passando de um documento de texto puro disposto em um padr&atilde;o simples. Conforme foi explicado, JSON &eacute; excelente para interc&acirc;mbio de informa&ccedil;&otilde;es entre aplicativos.</p><p>Mas tamb&eacute;m existem outras maneiras de se fazer isso, por exemplo, com <strong>XML</strong>. Entretanto, o JSON apresenta vantagens bastante interessantes, o que, ap&oacute;s uma an&aacute;lise do caso de seu aplicativo ou sistema web, pode lev&aacute;-lo a optar por ele. Algumas das vantagens s&atilde;o:</p><ul><li>Sintaxe simples, de f&aacute;cil aprendizado e implementa&ccedil;&atilde;o;</li><li>Tamanho do arquivo bem menor em rela&ccedil;&atilde;o a outras &#8220;linguagens intermedi&aacute;rias&#8221;, tais como XML;</li><li>Facilidade de desenvolvimento e alto desempenho nas aplica&ccedil;&otilde;es que o utilizam.</li></ul><h2>Estruturas JSON</h2><p>&Eacute; poss&iacute;vel ver alguns diagramas das estruturas no pr&oacute;prio <a
href="http://www.json.org/">site oficial do JSON</a>; basicamente, &eacute; o seguinte:</p><p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/06/json-estruturas-objeto-array-valor.gif" alt="JSON: estruturas" title="" width="500" height="440" class="aligncenter size-full wp-image-708" /></p><p>Vamos ver, ent&atilde;o, como podemos descrever dados simples usando o que a sintaxe que ele nos oferece.</p><h3>Arrays</h3><p>Por exemplo, vamos ver como seria um array dos dias da semana:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;Domingo&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Segunda&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Terça&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Quarta&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Quinta&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Sexta&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Sábado&quot;</span><span style="color: #009900;">&#93;</span></pre></div></div><p>Perceba que strings devem ser indicadas com aspas duplas.</p><p>Elementos separados por v&iacute;rgulas entre colchetes &eacute; a nota&ccedil;&atilde;o JSON para um array (naturalmente, a v&iacute;rgula delimita cada item). A maioria dos desenvolvedores prefere identar um pouco o c&oacute;digo para facilitar a leitura:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>
	<span style="color: #3366CC;">&quot;Domingo&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Segunda&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Terça&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Quarta&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Quinta&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Sexta&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Sábado&quot;</span>
<span style="color: #009900;">&#93;</span></pre></div></div><p>&Eacute; poss&iacute;vel, tamb&eacute;m, misturar diversos tipos de dados em um s&oacute; array:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>
	<span style="color: #CC0000;">33</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Segunda&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #003366; font-weight: bold;">TRUE</span><span style="color: #339933;">,</span>
	<span style="color: #CC0000;">3.14159265</span><span style="color: #339933;">,</span>
        <span style="color: #003366; font-weight: bold;">NULL</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;ma&amp;ccedil;&amp;atilde;&quot;</span>
<span style="color: #009900;">&#93;</span></pre></div></div><h3>Objetos</h3><p>Como vimos, arrays s&atilde;o representados por colcechetes. No caso de objetos, estes s&atilde;o representados por chaves; cada chave &eacute; identificada por uma string e, depois de um dois-pontos, os valores de cada item especificados. Fica mais claro com um exemplo:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
	<span style="color: #3366CC;">&quot;Domingo&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Folga&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Segunda&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Viagem&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Terça&quot;</span>   <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Pagamentos&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Quarta&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Piscina&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Quinta&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Churrasco&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Sexta&quot;</span>   <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Carteado&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Sábado&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Festa&quot;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Perceba que n&atilde;o tem import&acirc;ncia haver espa&ccedil;os a mais ou a menos entre a descri&ccedil;&atilde;o da chave, o separador &#8220;:&#8221; e o valor desta. Tudo ser&aacute; interpretado corretamente.</p><h3>Alguns exemplos</h3><p>&Eacute; bastante simples descrever JSON, voc&ecirc; viu. Como os objetos de qualquer outra linguagem de programa&ccedil;&atilde;o, &eacute; poss&iacute;vel armazenar quaisquer tipos de dados e quantos dados se desejar. Veja este exemplo:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">&quot;Marconildo&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.marconildo.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">34</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Joanorta&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.joanorta.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">22</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Estripafurgia&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.estripafurgia.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">47</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Perceba que, neste caso, cada objeto possui, &#8220;url&#8221; e &#8220;idade&#8221; (provavelmente este n&atilde;o seria um exemplo &#8220;da vida real&#8221;, mas d&aacute; para ilustrar bem o conceito), mas, n&atilde;o necessariamente, todos devem possuir o mesmo n&uacute;mero de propriedades. Poderia haver um ou mais elementos com &#8220;url&#8221;, &#8220;idade&#8221;, &#8220;altura&#8221;, &#8220;endereco&#8221;, etc. &Eacute; poss&iacute;vel, inclusive, a utiliza&ccedil;&atilde;o de arrays:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">&quot;Marconildo&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.marconildo.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">34</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Joanorta&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.joanorta.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">22</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Estripafurgia&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.estripafurgia.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">47</span><span style="color: #339933;">,</span>
    	<span style="color: #3366CC;">&quot;diasDeTrabalho&quot;</span><span style="color: #339933;">:</span>
	 <span style="color: #009900;">&#91;</span>
	     <span style="color: #3366CC;">&quot;Segunda&quot;</span><span style="color: #339933;">,</span>
	     <span style="color: #3366CC;">&quot;Quarta&quot;</span><span style="color: #339933;">,</span>
	     <span style="color: #3366CC;">&quot;Sexta&quot;</span>
	 <span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>E, at&eacute;, um array de objetos!</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">&quot;Marconildo&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.marconildo.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">34</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Joanorta&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.joanorta.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">22</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;Estripafurgia&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.estripafurgia.com.br/&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">47</span><span style="color: #339933;">,</span>
    	<span style="color: #3366CC;">&quot;dependentes&quot;</span><span style="color: #339933;">:</span>
    	<span style="color: #009900;">&#91;</span>
    	    <span style="color: #3366CC;">&quot;Astolfinho&quot;</span><span style="color: #339933;">:</span>
	    <span style="color: #009900;">&#123;</span>
	        <span style="color: #3366CC;">&quot;sexo&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;m&quot;</span><span style="color: #339933;">,</span>
	        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">16</span>
	    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    	    <span style="color: #3366CC;">&quot;Mariazinha&quot;</span><span style="color: #339933;">:</span>
	    <span style="color: #009900;">&#123;</span>
	        <span style="color: #3366CC;">&quot;sexo&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #339933;">,</span>
	        <span style="color: #3366CC;">&quot;idade&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span>
	    <span style="color: #009900;">&#125;</span>
    	<span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><h2>JSON e javascript</h2><p>Agora voc&ecirc; j&aacute; aprendeu as nota&ccedil;&otilde;es b&aacute;sicas do JSON, mas o que fazer com isso, como usar, efetivamente, o poder do JSON nas aplica&ccedil;&otilde;es do dia-a-dia usando javascript? Veja um exemplo simples:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> funcionarios <span style="color: #339933;">=</span> <span style="color: #3366CC;">'
	{
	    &quot;Marconildo&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.marconildo.com.br/&quot;,
	        &quot;idade&quot;: 34
	    },
	    &quot;Joanorta&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.joanorta.com.br/&quot;,
	        &quot;idade&quot;: 22
	    },
	    &quot;Estripafurgia&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.estripafurgia.com.br/&quot;,
	        &quot;idade&quot;: 47
	    }
	}
'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> funcionario <span style="color: #339933;">=</span> JSON.<span style="color: #660066;">parse</span><span style="color: #009900;">&#40;</span>funcionarios<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>funcionario.<span style="color: #660066;">Marconildo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>funcionario.<span style="color: #660066;">Marconildo</span>.<span style="color: #660066;">idade</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Foi criada a vari&aacute;vel &#8220;funcionarios&#8221; e colocado uma string JSON nela. Usando a fun&ccedil;&atilde;o <a
rel="nofollow" href="http://msdn.microsoft.com/en-us/library/cc836466(v=vs.94).aspx">JSON.parse</a>, convertemos a string para, efetivamente, JSON na vari&aacute;vel &#8220;funcionario&#8221;e, a partir da&iacute;, foi poss&iacute;vel acessar todas suas propriedades com a nota&ccedil;&atilde;o padr&atilde;o de OO.</p><p>Esse foi um exemplo ilustrativo. Em aplica&ccedil;&otilde;es &#8220;de verdade&#8221;, seria bastante eficiente, por exemplo, realizar requisi&ccedil;&otilde;es em AJAX para procurar retornos em JSON e, a partir da&iacute;, realizar quaisquer tipos de opera&ccedil;&atilde;o com o <em>data</em> retornado. Trataremos disso em artigos futuros. <a
href="http://desenvolvimentoparaweb.com/feed">Assine o feed</a> para conferir.</p><h3>$.getJSON</h3><p>O jQuery possui uma poderosa ferramenta para trabalharmos com JSON, &eacute; a fun&ccedil;&atilde;o <a
href="http://api.jquery.com/jQuery.getJSON/">$.getJSON</a>, que serve para carregar dados no formato JSON usando requisi&ccedil;&atilde;o HTTP <strong>GET</strong>. Na verdade, esta fun&ccedil;&atilde;o &eacute; somente uma esp&eacute;cie de atalho para <a
href="http://api.jquery.com/jQuery.ajax/">$.ajax()</a> usando &#8220;json&#8221; no dataType, mas us&aacute;-la num contexto JSON fica bastante coerente.</p><p>N&atilde;o h&aacute; mist&eacute;rio algum para usar, ele segue a mesma &#8220;linha&#8221; do $.ajax(), como podemos encontrar neste exemplo disponibilizado no pr&oacute;prio site do jQuery:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ajax/test.json'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> items <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
  $.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>data<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>key<span style="color: #339933;">,</span> val<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    items.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;li id=&quot;'</span> <span style="color: #339933;">+</span> key <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;&gt;'</span> <span style="color: #339933;">+</span> val <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&lt;/li&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;ul/&gt;'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">'class'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'my-new-list'</span><span style="color: #339933;">,</span>
    html<span style="color: #339933;">:</span> items.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>E, <a
href="http://onwebdev.blogspot.com/2011/08/jquery-testing-remote-json-data-with.html">como nos mostra Gabriele Romanato</a>, &eacute; poss&iacute;vel verificar se o resultado da requisi&ccedil;&atilde;o &eacute; realmente um objeto JSON de maneira simples:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</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: #000066; font-weight: bold;">typeof</span> data <span style="color: #339933;">!==</span> <span style="color: #3366CC;">'object'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Erro!</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></div></div><p>Dessa maneira, &eacute; poss&iacute;vel economizar bastante tempo ao procurar erros e a estrutura de c&oacute;digo fica mais profissional e mais facilmente manuten&iacute;vel.</p><h2>JSON e PHP</h2><p>O PHP tamb&eacute;m possui algumas <a
href="http://www.php.net/manual/en/ref.json.php">fun&ccedil;&otilde;es para se trabalhar com JSON</a>. Vamos a um exemplo simples de como gerar PHP a partir de JSON:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$funcionarios</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'
	{
	    &quot;Marconildo&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.marconildo.com.br/&quot;,
	        &quot;idade&quot;: 34
	    },
	    &quot;Joanorta&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.joanorta.com.br/&quot;,
	        &quot;idade&quot;: 22
	    },
	    &quot;Estripafurgia&quot;:
	    {
	        &quot;url&quot;: &quot;http://www.estripafurgia.com.br/&quot;,
	        &quot;idade&quot;: 47
	    }
	}
'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$funcionario</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcionarios</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$funcionario</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Marconildo</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$funcionario</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Marconildo</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">idade</span><span style="color: #339933;">;</span></pre></div></div><p>Bem simples, bem direto, dispensa explica&ccedil;&otilde;es. Agora, se voc&ecirc; preferir tratar o JSON como se fosse array, basta inserir um segundo par&acirc;metro &agrave; fun&ccedil;&atilde;o, dessa maneira:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$funcionario</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcionarios</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><h2>Ferramentas JSON</h2><p>JSON &eacute; bastante simples e intuitivo para qualquer programador, mas, para quem est&aacute; come&ccedil;ando a mexer agora e/ou para os que precisam de algumas <strong>ferramentas para JSON</strong>, segue o link de alguns parser, validadores e ferramentas, em geral, para se trabalhar com JSON:</p><ul><li><a
href="http://json.parser.online.fr/">Json Parser Online</a></li><li><a
href="http://jsonlint.com/">JSONLint &#8211; The JSON Validator</a></li><li><a
href="http://jsonviewer.stack.hu/">Online JSON Viewer</a></li><li><a
href="http://www.jollydroll.com/tools/json">Convert JSON Strings to a Friendly Readable Format</a></li></ul><h2>Conclus&atilde;o sobre JSON</h2><p>Uma das principais funcionalidades do JSON &eacute; o <strong>interc&acirc;mbio de dados entre aplicativos e linguagens diferentes</strong>. Sua sintaxe simples, sua leveza e objetividade, aliados ao suporte por dezenas de linguagens de progrma&ccedil;&atilde;o o tornam uma excelente alternativa quando a necessidade &eacute; esta. O fato de milhares de <em>webservices</em> de qualidade usarem JSON deve ser um bom indicativo de que us&aacute;-lo &eacute; uma boa escolha.</p><p>Usando as ferramentas apresentas, &eacute; poss&iacute;vel validar seu JSON, test&aacute;-lo, verificar se est&aacute; produzindo uma hierarquia correta, enfim, aperfei&ccedil;oar e refinar o c&oacute;digo para que atinja o m&aacute;ximo poss&iacute;vel de desempenho. Ao se trabalhar com JSON, logo se percebe seu poder e simplicidade, o que agiliza bastante o processo de programa&ccedil;&atilde;o, ao mesmo tempo em que o formato n&atilde;o se torna um empecilho &agrave; produtividade; pelo contr&aacute;rio, a aprimora!</p><p>Por essas e outras a nota&ccedil;&atilde;o <strong>JavaScript Object Notation</strong>, mais conhecida como <strong>JSON</strong>, &eacute; altamente recomendada para desenvolvimento web!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/perguntas-cliente-antes-depois-projeto/" title="Perguntas ao cliente para antes e depois de um projeto">Perguntas ao cliente para antes e depois de um projeto</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/midia-social/mastering-twitter-o-manual-completo-sobre-twitter-para-desenvolvedores-e-marketeiros/" title="Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros">Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/8-caracteristicas-de-user-interfaces-ui-de-sucesso/" title="8 características de User Interfaces (UI) de sucesso">8 características de User Interfaces (UI) de sucesso</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/web-sites-e-comunicacao-21-maneiras-de-os-sites-se-comunicarem-com-seus-visitantes/" title="Web sites e comunicação: 21 maneiras de os sites se comunicarem com seus visitantes">Web sites e comunicação: 21 maneiras de os sites se comunicarem com seus visitantes</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/meta-tags/" title="Meta tags">Meta tags</a></li><li><a
href="http://desenvolvimentoparaweb.com/blogs/maneiras-praticas-para-melhorar-a-visitacao-de-seu-blog-e-fidelizar-seus-leitores/" title="Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores">Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/rhFfvRrp6FRdhT7hJUw-clvJATE/0/da"><img src="http://feedads.g.doubleclick.net/~a/rhFfvRrp6FRdhT7hJUw-clvJATE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rhFfvRrp6FRdhT7hJUw-clvJATE/1/da"><img src="http://feedads.g.doubleclick.net/~a/rhFfvRrp6FRdhT7hJUw-clvJATE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZJ5Xk5ypVxE:JiXfAJNLTuw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZJ5Xk5ypVxE:JiXfAJNLTuw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZJ5Xk5ypVxE:JiXfAJNLTuw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZJ5Xk5ypVxE:JiXfAJNLTuw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZJ5Xk5ypVxE:JiXfAJNLTuw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZJ5Xk5ypVxE:JiXfAJNLTuw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/ZJ5Xk5ypVxE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/</feedburner:origLink></item> <item><title>Cores na web: guia completo</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/uD4vxbLB5l4/</link> <comments>http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/#comments</comments> <pubDate>Mon, 09 May 2011 13:10:59 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Planejamento]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Web Design]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=702</guid> <description><![CDATA[Guia completo sobre cores na web: indica&ccedil;&otilde;es de sites, ferramentas, artigos e mais.]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-704" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/05/cores-na-web-guia-teoria-pratica.jpg" alt="Cores na web: guia completo (exemplo de roda de cores)" width="300" height="300" /></p><p>Recentemente, uma leitora do blog escreveu pedindo algum material sobre <strong>cores na web</strong>, perguntando se poderia publicar um artigo sobre este assunto t&atilde;o importante no desenvolvimento para web. Como j&aacute; tivemos a oportunidade de mostrar, as cores s&atilde;o uma das <a
href="http://desenvolvimentoparaweb.com/usabilidade/web-sites-e-comunicacao-21-maneiras-de-os-sites-se-comunicarem-com-seus-visitantes/">maneiras de os sites se comunicarem com seus visitantes</a>, imprescind&iacute;vel para se fazer web sites de qualidade.</p><p>O assunto, al&eacute;m de complexo e, em alguns pontos, controverso, &eacute; bastante amplo. Por isso, ao inv&eacute;s de escrever um artigo ou uma <a
href="http://desenvolvimentoparaweb.com/categoria/series/">s&eacute;rie</a> a respeito, decidi que a contribui&ccedil;&atilde;o seria maior ao indicar fontes e refer&ecirc;ncias sobre o tema. Certamente compartilhar o que outras pessoas j&aacute; escreveram sobre as <strong>cores na web</strong> (e cores, em geral) ser&aacute; uma contribui&ccedil;&atilde;o muito maior.</p><h2>Refer&ecirc;ncias sobre teoria das cores para web</h2><p>O uso da teoria das cores na web, na verdade, n&atilde;o &eacute; assunto exclusivo da web. O que se faz &eacute; pegar todo o este conte&uacute;do te&oacute;rico e, simplesmente, realizar algumas adapta&ccedil;&otilde;es para que este seja mais &#8220;compat&iacute;vel&#8221; e traga resultados mais eficientes no ambiente online. Portanto, quando se faz este tipo de estudo, voc&ecirc; encontra os mesmos termos, terminologias, conceitos e constata&ccedil;&otilde;es, seja no &#8220;mundo online&#8221; ou &#8220;mundo offine&#8221;.</p><p>Ent&atilde;o, uma boa forma de come&ccedil;ar o estudo das cores &eacute; acessando o site de <strong>Maria Claudia Cortes</strong>, <a
href="http://www.mariaclaudiacortes.com/colors/Colors.html">Color in Motion</a>, no qual, atrav&eacute;s de intera&ccedil;&otilde;es do pr&oacute;prio visitante, ela mostra o significado, melhor combina&ccedil;&atilde;o, efeitos psicol&oacute;gicos, significado nas diferentes partes do mundo, etc, das cores vermelho, laranja, amarelo, verde, azul e roxo. Al&eacute;m disso, h&aacute; uma anima&ccedil;&atilde;o que envolve os personagens das cores, mostrando algumas das principais respectivas caracter&iacute;sticas. Realmente vale a pena o acesso!</p><p>&Eacute; importante, tamb&eacute;m, j&aacute; que o assunto s&atilde;o <strong>cores na web</strong>, conhecer um pouco da parte t&eacute;cnica que envolve a exibi&ccedil;&atilde;o de cores em monitores, diferen&ccedil;a entre CMYK (real) e RGB (virtual), diferen&ccedil;a ao representar as cores usando RGB ou Hexadecimal, dentre outros. E, para isso, existe uma explica&ccedil;&atilde;o-base bastante simples de se entender, que pode ser encontrada no site da <a
href="http://www.hi-midia.com/">Hi-Midia</a>, em um <a
href="http://www.hi-midia.com/2009/06/as-cores-na-web/">artigo sobre as cores na web</a>.</p><p>Uma das grandes refer&ecirc;ncias na &aacute;rea &eacute; <strong>Daniele Viana</strong> que, em <a
href="http://www.danielevsilva.com.br/">seu blog</a>, fez uma s&eacute;rie de artigos a respeito. O interessante &eacute; que, dentre esses artigos, existem aqueles que abordam, especificamente, as principais cores e seus efeitos em web designs. Artigos estes que, numa disposi&ccedil;&atilde;o did&aacute;tica, seriam:</p><ul><li><a
href="http://www.danielevsilva.com.br/uso-das-cores/">O uso das cores em webdesign</a></li><li>Breve an&aacute;lise das cores<ul><li><a
href="http://www.danielevsilva.com.br/amarelo/">Amarelo</a></li><li><a
href="http://www.danielevsilva.com.br/azul/">Azul</a></li><li><a
href="http://www.danielevsilva.com.br/cinza/">Cinza</a></li><li><a
href="http://www.danielevsilva.com.br/laranja/">Laranja</a></li><li><a
href="http://www.danielevsilva.com.br/marrom/">Marrom</a></li><li><a
href="http://www.danielevsilva.com.br/preto/">Preto</a></li><li><a
href="http://www.danielevsilva.com.br/cor-de-rosa/">Rosa</a></li><li><a
href="http://www.danielevsilva.com.br/roxo/">Roxo</a></li><li><a
href="http://www.danielevsilva.com.br/verde/">Verde</a></li><li><a
href="http://www.danielevsilva.com.br/vermelho/">Vermelho</a></li></ul></li><li><a
href="http://www.danielevsilva.com.br/combinando-cores-2/">Como criar combina&ccedil;&otilde;es de cores mais inteligentes</a></li></ul><div>Tamb&eacute;m o pessoal do <a
href="http://vandelaydesign.com/blog/">Vandelay Design Blog</a> apresenta excelentes refer&ecirc;ncias de sites por cor que valem a pena serem vistos:</div><div><ul><li><a
href="http://vandelaydesign.com/blog/galleries/yellow-websites/">Amarelo</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/blue-websites/">Azul</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/orange-websites/">Laranja</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/brown-websites/">Marrom</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/green-websites/">Verde</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/red-websites/">Vermelho</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/pink-websites/">Rosa</a></li><li><a
href="http://vandelaydesign.com/blog/galleries/purple-websites/">Roxo</a></li></ul></div><h2>Ferramentas para cores na web</h2><p>J&aacute; tivemos a oportunidade de mostrar algumas ferramentas para cores na web, como, por exemplo, o <a
href="http://desenvolvimentoparaweb.com/acessibilidade/colorblind-web-page-filter/">Colorblind Web Page Filter</a>. Mas, para compor este artigo melhor, faz-se necess&aacute;ria uma lista mais incrementada. Portanto, segue uma lista completa de ferramentas de cores para web:</p><ul><li>Amostras/Combina&ccedil;&otilde;es de cores<ul><li><a
href="http://0to255.com/">0to255</a></li><li><a
href="http://www.colorschemer.com/schemes/">Color Schemer Scheme Gallery</a></li><li><a
href="http://www.colourlovers.com/">COLOURlovers</a></li><li><a
href="http://www.firewheeldesign.com/sparkplug/2006/February/colorburn_winners.php">ColorBurn Winners</a></li><li><a
href="http://www.colorcombos.com/">Color Combos</a></li><li><a
href="http://www.gpeters.com/color/color-schemes.php">Color Schemes</a></li><li><a
href="http://kuler.adobe.com/">Kuler</a></li></ul></li><li>Montagem de esquemas de cores<ul><li><a
href="http://colorblender.com/">Color Blender</a></li><li><a
href="http://www.colorjack.com/sphere/">Color Jack: Sphere</a></li><li><a
href="http://www.degraeve.com/color-palette/">Color Palette Generator</a></li><li><a
href="http://colorschemedesigner.com/">Color Scheme Designer</a></li><li><a
href="http://www.colorschemer.com/online.html">Color Schemer Online</a></li><li><a
href="http://www.easyrgb.com/index.php?X=HARM">EasyRGB: Color Harmonies</a></li></ul></li><li>Cores a partir de imagem<ul><li><a
href="http://www.degraeve.com/color-palette/">Color Palette Generator</a></li><li><a
href="http://bighugelabs.com/flickr/colors.php">Palette Generator</a></li><li><a
href="http://whatsitscolor.com/">What’s Its Color</a></li></ul></li><li>Outros<ul><li><a
href="http://meyerweb.com/eric/tools/color-blend/">Color Blender</a></li><li><a
href="http://www.etre.com/tools/colourcheck/">Colour Check</a></li><li><a
href="http://www.limov.com/colour/">Colour Selector</a></li><li><a
href="http://redalt.com/Tools/I+Like+Your+Colors">I Like Your Colors</a></li></ul></li></ul><h2>Conclus&atilde;o</h2><p>Quando se trata de cores e exibi&ccedil;&atilde;o de imagens na web, algo que deve ser feito depois de o servi&ccedil;o feito, &eacute; &#8220;ajustar&#8221; o trabalho para a web. Ent&atilde;o, confira o artigo &#8220;<a
href="http://desenvolvimentoparaweb.com/miscelanea/como-otimizar-imagens-web-internet/">Como otimizar imagens para web – guia de otimiza&ccedil;&atilde;o de imagens</a>&#8220;.</p><p>Existem muitos e muitos sites que tratam sobre a teoria das cores na web. Alguns tratam de forma mais geral; outros mais pormenorizada. Mas s&atilde;o tantos e tantos que tentar sistematizar todos em um &uacute;nico artigo &eacute; algo bastante dif&iacute;cil de se fazer. Portanto, caso tenha algum complemento a fazer e/ou ferramenta para indicar, <strong>comente</strong>!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/css/css-float-consideracoes-dicas-e-macetes-para-bons-layouts-na-web/" title="CSS float: considerações, dicas e macetes para bons layouts na web">CSS float: considerações, dicas e macetes para bons layouts na web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-6-principio-da-experiencia-passada/" title="Gestalt aplicado ao design web (parte 6): princípio da experiência passada">Gestalt aplicado ao design web (parte 6): princípio da experiência passada</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-5-exemplos-web-do-principio-do-alinhamento/" title="Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento">Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-4-principio-da-boa-continuidade-ou-principio-do-alinhamento/" title="Gestalt aplicado ao design web (parte 4): princípio da boa continuidade ou princípio do alinhamento">Gestalt aplicado ao design web (parte 4): princípio da boa continuidade ou princípio do alinhamento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-3-exemplos-web-do-principio-da-proximidade/" title="Gestalt aplicado ao design web (parte 3): exemplos web do princípio da proximidade">Gestalt aplicado ao design web (parte 3): exemplos web do princípio da proximidade</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-2-principio-da-proximidade/" title="Gestalt aplicado ao design web (parte 2): princípio da proximidade">Gestalt aplicado ao design web (parte 2): princípio da proximidade</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-1-origem-do-termo-significado-e-utilidade/" title="Gestalt aplicado ao design web (parte 1): origem do termo, significado e utilidade">Gestalt aplicado ao design web (parte 1): origem do termo, significado e utilidade</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/" title="Estratégia de Conteúdo ou Content Strategy">Estratégia de Conteúdo ou Content Strategy</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/HocvEnosMZfMILTXtBIupDIZ_QY/0/da"><img src="http://feedads.g.doubleclick.net/~a/HocvEnosMZfMILTXtBIupDIZ_QY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HocvEnosMZfMILTXtBIupDIZ_QY/1/da"><img src="http://feedads.g.doubleclick.net/~a/HocvEnosMZfMILTXtBIupDIZ_QY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uD4vxbLB5l4:Cqp5dao6XKk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uD4vxbLB5l4:Cqp5dao6XKk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uD4vxbLB5l4:Cqp5dao6XKk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uD4vxbLB5l4:Cqp5dao6XKk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uD4vxbLB5l4:Cqp5dao6XKk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uD4vxbLB5l4:Cqp5dao6XKk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/uD4vxbLB5l4" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/feed/</wfw:commentRss> <slash:comments>5</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/</feedburner:origLink></item> <item><title>Como fazer loading em conteúdos do site</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/tMw5RUsUb1w/</link> <comments>http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/#comments</comments> <pubDate>Thu, 24 Feb 2011 20:12:22 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[jquery]]></category> <category><![CDATA[Usabilidade]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[Plugins]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=696</guid> <description><![CDATA[Muitos desenvolvedores procuram uma solu&ccedil;&atilde;o eficiente para fazer loading em conte&uacute;dos do site. Com jLoader, isso &eacute; simples.]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2011/02/como-fazer-loading-conteudos-site-300x300.jpg" alt="Como fazer loading em conte&uacute;dos do site: caneca ilustrativa" title="" width="300" height="300" class="aligncenter size-medium wp-image-697" /></p><p>Quando o assunto &eacute; <strong>desenvolvimento web</strong>, os visitantes de sites n&atilde;o t&ecirc;m muita paci&ecirc;ncia para esperar&#8230; Estudos mostram que se o site n&atilde;o apresentar algum feedback (mostrar alguns elementos/conte&uacute;dos) em poucos segundos, a pessoa desiste de esperar e abandona o site &#8211; com grandes probabilidades de n&atilde;o mais retornar.</p><p>Uma das fun&ccedil;&otilde;es mais interessantes &eacute; apresentar um <strong>loading</strong> (vulgo &#8220;carregamento&#8221;) indicando quantos por cento (%) do site est&atilde;o carregados e o que ainda falta, mostrando para o visitante este feedback que ele precisa para ter certeza de que &#8220;coisas&#8221; est&atilde;o acontecendo.</p><p>Depois do advento do AJAX, nos anos 90 do s&eacute;culo passado, e surgimento de muitos bons frameworks para front-end depois disso, tais como <a
href="http://desenvolvimentoparaweb.com/categoria/jquery/">jQuery</a>, os programadores contamos com excelentes <a
title="ferramentas e recursos" href="http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/">ferramentas e recursos</a> para acelerar o carregamento e <a
title="melhorar a performance de sites" href="http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/">melhorar a performance de sites</a>, sendo poss&iacute;vel realizar fun&ccedil;&otilde;es, efeitos e intera&ccedil;&otilde;es que, pouco tempo atr&aacute;s, n&atilde;o eram sequer imaginadas.</p><p>Uma das intera&ccedil;&otilde;es &eacute; <strong>fazer loading em conte&uacute;dos do site</strong>, ou, mesmo, em p&aacute;ginas inteiras do site, e uma das maneias de se fazer isso &eacute; usando o plugin para jQuery <strong>jLoader</strong>.</p><h2>jLoader: din&acirc;mica</h2><p>&Eacute; poss&iacute;vel ver no <a
href="http://code.google.com/p/jloader/">site oficial do jLoad</a> que est&aacute; licenciado sob a <a
href="http://www.gnu.org/licenses/gpl.html">GNU GPL v3</a>, ent&atilde;o seu uso &eacute; gr&aacute;tis e pode ser feito sem maiores complica&ccedil;&otilde;es.</p><p>O que o plugin permite &eacute; mostrar uma barra de carregamento para elementos espec&iacute;ficos da p&aacute;gina (lembrando que &#8220;body&#8221; tamb&eacute;m &eacute; um elemento da p&aacute;gina). Quer dizer, &eacute; poss&iacute;vel tanto carregar elementos espec&iacute;ficos da p&aacute;gina (e o jLoader permite fazer m&uacute;ltiplos carregamentos simult&acirc;neos), quanto carregar a p&aacute;gina inteira, colocando o loader no documento inteiro.</p><p>Algumas das caracter&iacute;sticas do jLoader s&atilde;o:</p><ul><li>M&uacute;ltiplos loadings simult&acirc;neos na mesma p&aacute;gina</li><li>Acompanha redimensionamento da janela</li><li>Se o elemento-alvo tiver imagem de background ou for uma imagem, isso &eacute; levado em considera&ccedil;&atilde;o</li><li>Fun&ccedil;&atilde;o para interromper loadings em triggers de eventos</li><li>Dentre outros</li></ul><h2>jLoader: funcionamento</h2><p>O plugin &eacute; leve (8KB) e conta com somente 1 arquivo (nada de CSS externo). Como citado, &eacute; poss&iacute;vel fazer carregamento para v&aacute;rios elementos da p&aacute;gina ao mesmo tempo; para cada um deles, o m&eacute;todo construtor pode receber argumentos de personaliza&ccedil;&atilde;o:</p><ul><li><strong>overlayColor.</strong> Hexadecimal da cor de background do loading (padr&atilde;o &#8220;#000&#8243;).</li><li><strong>userCallback.</strong> Fun&ccedil;&atilde;o para quando o carregamento termina (padr&atilde;o &#8220;null&#8221;).</li><li><strong>showProgress.</strong> Se a barra de loading vai ou n&atilde;o aparecer (padr&atilde;o &#8220;false&#8221;).</li><li><strong>showProgressText.</strong> Se o n&uacute;mero da porcentagem vai ou n&atilde;o aparecer (padr&atilde;o &#8220;false&#8221;).</li><li><strong>progressColor.</strong> Hexadecimal para a cor da barra de progresso (padr&atilde;o &#8220;#FFF&#8221;).</li><li><strong>textColor.</strong> Hexadecimal para a cor dos n&uacute;meros da porcentagem (padr&atilde;o &#8220;#FFF&#8221;).</li><li><strong>textSize.</strong> Tamanho do texto para os n&uacute;meros da porcentagem (padr&atilde;o &#8220;15&#8243;).</li><li><strong>loaderPosition.</strong> Reposiciona o loader no overlay; por padr&atilde;o &eacute; centalizado (usa-se &#8220;loaderPosition:{top:y,left:x}&#8221;).</li></ul><p>N&atilde;o s&atilde;o tantas op&ccedil;&otilde;es, assim, mas j&aacute; d&aacute; para fazer um n&iacute;vel de personaliza&ccedil;&atilde;o bem interessante. Vamos ver em alguns exemplos.</p><h2>jLoader: exemplo 1</h2><p>Como primeiro exemplo, vamos imaginar que queremos fazer loading em um elemento de id &#8220;escopo&#8221;, mostrando a barra de progresso e o texto da porcentagem de carregamento com texto 20 e, ap&oacute;s o fim do carregamento, dar o trigger para a fun&ccedil;&atilde;o showContent().</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td
class="code"><pre class="php" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>ready<span style="color: #009900;">&#40;</span><span style="color: #000000; 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: #000000; font-weight: bold;">var</span> loader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#escopo'</span><span style="color: #339933;">,</span>
        <span style="color: #009900;">&#123;</span>
	    showProgress<span style="color: #339933;">:</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	    showProgressText<span style="color: #339933;">:</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	    textSize<span style="color: #339933;">:</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span>
	    userCallback<span style="color: #339933;">:</span>showContent
	<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    loader<span style="color: #339933;">.</span>Start<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><h2>jLoader: exemplo 2</h2><p>Loadin no elemento de id &#8220;noticias&#8221;, com fundo &#8220;#0B274C&#8221; e cor da barra de carregamento &#8220;#F6911E&#8221;.</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td
class="code"><pre class="php" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>ready<span style="color: #009900;">&#40;</span><span style="color: #000000; 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: #000000; font-weight: bold;">var</span> loader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#noticias'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#123;</span>
	    showProgress<span style="color: #339933;">:</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	    showProgressText<span style="color: #339933;">:</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	    overlayColor<span style="color: #339933;">:</span><span style="color: #0000ff;">'#0B274C'</span><span style="color: #339933;">,</span>
	    progressColor<span style="color: #339933;">:</span><span style="color: #0000ff;">'#F6911E'</span>
	<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    loader<span style="color: #339933;">.</span>Start<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><h2>jLoader: exemplo 3</h2><p>Loading o site inteiro, com todas as configura&ccedil;&otilde;es padr&atilde;o, exceto o tamanho do texto, que ser&aacute; &#8220;10&#8243;.</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="php" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>ready<span style="color: #009900;">&#40;</span><span style="color: #000000; 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: #000000; font-weight: bold;">var</span> loader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'body'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#123;</span>
	    textSize<span style="color: #339933;">:</span><span style="color: #cc66cc;">10</span>
	<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    loader<span style="color: #339933;">.</span>Start<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><h2>Outras customiza&ccedil;&otilde;es</h2><p>Estamos falando de arquivos javascript, meus amigos, e, mesmo que n&atilde;o haja uma fun&ccedil;&atilde;o pr&eacute;-definida e/ou voc&ecirc; queira fazer ajustes mais &#8220;pesados&#8221;, diretamente no core do plugin, basta abrir o arquivo que voc&ecirc; baixou e realizar as mudan&ccedil;as que quiser&#8230;</p><p>Por exemplo, se quiser aumentar a espessura da <strong>barra de loading</strong> (que, por padr&atilde;o, &eacute; de 1px), simplesmente abro o arquivo, procura o trecho de c&oacute;digo que especifica essa caracter&iacute;sticas (na atual vers&atilde;o do jLoader, a 1.1.1, esta caracter&iacute;stica est&aacute; na linha 139 do arquivo <a
href="http://jloader.googlecode.com/files/jLoader.js">jLoader.js</a>).</p><p>Assim como foi explicado no artigo sobre <a
title="cria&ccedil;&atilde;o de URLs amig&aacute;veis com slugs" href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/">cria&ccedil;&atilde;o de URLs amig&aacute;veis com slugs</a>, o mesmo vale para qualquer script pronto: basta abrir, estudar e fazer as modifica&ccedil;&otilde;es que cabem ao projeto/resultado pretendido.</p><h2>Conclus&atilde;o</h2><p>Certamente, uma das maiores quest&otilde;es de muitos desenvolvedores &eacute; <strong>como fazer loading no site</strong>. Usando o jLoader, isto est&aacute; resolvido.</p><p>Mas, aten&ccedil;&atilde;o: n&atilde;o &eacute; s&oacute; porque existe o recurso de carregamento, que este deve ser usado em todo e qualquer elemento de todos os sites do mundo&#8230; H&aacute; que se levar em considera&ccedil;&atilde;o o escopo do projeto e se, realmente, existe a necessidade e/ou conveni&ecirc;ncia em usar o recurso.</p><p>Se realmente for necess&aacute;rio, use o jLoader para fazer loadings de elementos no site (ou p&aacute;ginas completas) e desfrute das facilidades de fazer isso de forma t&atilde;o simples, aumentando a boa experi&ecirc;ncia que os visitantes ter&atilde;o!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/" title="Otimização WordPress: aumente a performance e desempenho de seu blog / site">Otimização WordPress: aumente a performance e desempenho de seu blog / site</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li><li><a
href="http://desenvolvimentoparaweb.com/indicacoes/25-extensoes-para-o-firefox-para-aumentar-a-produtividade-no-dia-a-dia-na-web/" title="25 extensões para o Firefox para aumentar a produtividade no dia-a-dia na web">25 extensões para o Firefox para aumentar a produtividade no dia-a-dia na web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/" title="Melhorando a interação em formulários de busca">Melhorando a interação em formulários de busca</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/" title="8 maneiras de melhorar a performance de um site">8 maneiras de melhorar a performance de um site</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/" title="Melhores editores WYSIWYG para seu projeto">Melhores editores WYSIWYG para seu projeto</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/XbKgl7Snzv0BuevLtq7W20uBuqM/0/da"><img src="http://feedads.g.doubleclick.net/~a/XbKgl7Snzv0BuevLtq7W20uBuqM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XbKgl7Snzv0BuevLtq7W20uBuqM/1/da"><img src="http://feedads.g.doubleclick.net/~a/XbKgl7Snzv0BuevLtq7W20uBuqM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=tMw5RUsUb1w:IOZZc2iAgo0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=tMw5RUsUb1w:IOZZc2iAgo0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=tMw5RUsUb1w:IOZZc2iAgo0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=tMw5RUsUb1w:IOZZc2iAgo0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=tMw5RUsUb1w:IOZZc2iAgo0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=tMw5RUsUb1w:IOZZc2iAgo0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/tMw5RUsUb1w" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/feed/</wfw:commentRss> <slash:comments>13</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/</feedburner:origLink></item> <item><title>5 dicas para temas WordPress melhores</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/eU584go7cBg/</link> <comments>http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/#comments</comments> <pubDate>Mon, 22 Nov 2010 16:54:54 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[wordpress]]></category> <category><![CDATA[Blogs]]></category> <category><![CDATA[Otimização]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[Plugins]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=673</guid> <description><![CDATA[Leia este artigo e conhe&ccedil;a dicas de como desenvolver temas WordPress melhores]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/11/dicas-temas-wordpress-melhores.jpg" alt="5 dicas para temas WordPress melhores" title="" width="250" height="250" class="aligncenter size-full wp-image-677" /></p><p>Muitas pessoas usam o <a
href="http://wordpress.org/">WordPress</a> como plataforma para blogging, sites, portais e outros tipos de projetos online. Depois de instalar o WordPress, a maioria dos usu&aacute;rios de WordPress normalmente vai em busca de um tema pronto para n&atilde;o usar o tema padr&atilde;o que vem com o WP.</p><p>Quer voc&ecirc; use temas gratuitos ou pagos (ou, mesmo, desenvolva seus pr&oacute;prios temas), existem muitas maneiras de melhor&aacute;-los atrav&eacute;s de <strong>dicas para fazer temas WordPress melhores</strong>!</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://sixrevisions.com/wordpress/improve-wordpress-themes-tips/">10 Basic Tips for Improving WordPress Themes</a>&#8220;, do blog <a
href="http://sixrevisions.com/">Six Revisions</a>, e sofreu pequenas modifica&ccedil;&otilde;es.</div><h2>Use favicon personalizado</h2><p>Quando um site n&atilde;o tem um favicon personalizado, ele pode parecer n&atilde;o-profissional. Certifique-se que o seu tema WordPress tenha um favicon pr&oacute;prio. Voc&ecirc; pode conferir uma lista de <a
href="http://sixrevisions.com/resources/favicon_generators_resources/">geradores de favicon</a> para ajudar.</p><p>Para fazer refer&ecirc;ncia ao seu &iacute;cone no WordPress, basta colocar o seguinte c&oacute;digo, normalmente dentro arquivo <strong>header.php</strong> que pode ser encontrado na pasta raiz do seu tema (levando em conta que o arquivo da imagem tamb&eacute;m est&aacute; na pasta raiz):</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;icon&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;favicon.ico&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;image/x-icon&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div><h2>Estilize a legenda das imagens</h2><p>Quando voc&ecirc; faz upload de uma imagem para colocar em um post ou p&aacute;gina do WordPress, dentre outras op&ccedil;&otilde;es, &eacute; poss&iacute;vel inserir uma legendas para colocar uma descri&ccedil;&atilde;o para a imagem.  Um bom tema WordPress deve incluir regras CSS para estilizar as legendas da imagens. Para estilizar as legendas segundo o padr&atilde;o do WordPress, insira as seguintes linhas em seu arquivo CSS (geralmente chamado <strong>styles.css</strong>):</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.wp-caption</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#f3f3f3</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ddd</span><span style="color: #00AA00;">;</span>
border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">padding-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
&nbsp;
-khtml-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>
-moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>
-webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.wp-caption</span> img <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.wp-caption</span> p.wp-caption-<span style="color: #993333;">text</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">11px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">17px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">4px</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Veja o artigo com o <a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/">guia completo sobre breadcrumbs</a> para visualizar imagens com captions estilizados corretamente.</p><h2>Use PHP Flush</h2><p>Chamando a fun&ccedil;&atilde;o <a
href="http://www.php.net/manual/pt_BR/function.flush.php">flush()</a> do PHP imediatamente depois do cabe&ccedil;alho HTML, voc&ecirc; ser&aacute; capaz de acelerar seu site WordPress. Basta adicionar esta linha com a chamada &agrave; fun&ccedil;&atilde;o ap&oacute;s o &lt;/ head&gt; (por padr&atilde;o, no arquivo arquivo <strong>header.php</strong>):</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>Esse c&oacute;digo simplesmente for&ccedil;a seu servidor web a enviar cabe&ccedil;alho do site antes de enviar o restante do conte&uacute;do. Usando a fun&ccedil;&atilde;o flush(), o navegador tem tempo para baixar todas as folhas de estilo referenciadas no cabe&ccedil;alho enquanto espera pelas outras partes da p&aacute;gina.</p><h2>Minimize os arquivos de seu tema WordPress</h2><p>&Eacute; muito &uacute;til ter os arquivos CSS e javascript de seu tema minimizados para reduzir seu tamanho, consequentemente realizando uma transfer&ecirc;ncias de arquivos mais r&aacute;pido, aumentando a velocidade do site, em geral. Minimizar os arquivos significa retirar caracteres desnecess&aacute;rios deles, como espa&ccedil;os e tabs (e, no melhor caso, juntar todos os arquivos do mesmo tipo em um s&oacute;).</p><p>Existem diversas ferramentas gratuitas na internet para minimizar arquivos CSS e javascript. Para javascript, existem, dentre outros, os excelentes <a
href="http://www.minifyjavascript.com/">JavaScript Compressor</a>, <a
href="http://dean.edwards.name/packer/">/packer/</a>, <a
href="http://jscompress.com/">jsCompress</a> e <a
href="http://yui.2clics.net/">YUI Compressor Online</a>. Para fazer um minify em arquivos CSS, confira o item &#8220;Otimizadores e Formatadores de CSS&#8221; do artigo de <a
href="http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/">ferramentas e recursos para desenvolvimento web</a>.</p><p>Existem, tamb&eacute;m, v&aacute;rios plugins para WordPress para minimizar e otimizar os arquivos, como o <a
href="http://wordpress.org/extend/plugins/wp-minify/">WP Minify</a> e <a
href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Chache</a>, que fazem o servi&ccedil;o de minify de forma bastante transparente e, ainda, melhoram outros aspectos para otimiza&ccedil;&atilde;o de temas WordPress, tais como manipula&ccedil;&otilde;es de cache, combina&ccedil;&atilde;o de arquivos, e outros para melhorar a velocidade do site.</p><h2>Substitua fun&ccedil;&otilde;es e hooks por conte&uacute;do est&aacute;tico</h2><p>Os arquivos de temas que podem ser baixados na web precisam ser bem flex&iacute;veis, para atender ao maior n&uacute;mero de pessoas que os queiram usar. Por isso, existem diversas chamadas a fun&ccedil;&otilde;es e <a
href="http://codex.wordpress.org/Plugin_API/Hooks">hooks</a> que permitem que um tema funcione nas mais diversas formas e situa&ccedil;&otilde;es.</p><p>No entanto, isso pode acarretar em uma perda de performance e desempenho das p&aacute;gina, j&aacute; que cada vez que uma p&aacute;gina &eacute; gerada, ela precisa fazer v&aacute;rias chamadas a hooks/fun&ccedil;&otilde;es para renderizar a p&aacute;gina.</p><p>Inspecione os arquivos do tema que voc&ecirc; escolheu para seu site/blog e perceba as chamadas desnecess&aacute;rias. Por exemplo, no <strong>header.php</strong>, voc&ecirc; pode encontrar uma linha parecida com esta:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span></pre></div></div><p>Essa fun&ccedil;&atilde;o serve para mostrar o nome do seu site (definido nas configura&ccedil;&otilde;es no Painel Administrativo) na barra de t&iacute;tulos do navegador. Na verdade, o nome do site n&atilde;o se altera quase nunca, ent&atilde;o, para que deixar mais uma chamada a fun&ccedil;&atilde;o? Isso consome recursos do servidor e reduz o tempo de carregamento do site. Voc&ecirc; pode, facilmente, substituir por:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Nome do Site<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span></pre></div></div><p>Eis um outro exemplo do que pode ser encontrado no header.php:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo('stylesheet_url'); ?&gt;</span></span>&quot; type=&quot;text/css&quot; /&gt;</pre></div></div><p>Essa linha usa a fun&ccedil;&atilde;o para referenciar o caminho de onde se encontra o arquivo &#8220;style.css&#8221; do tema. Mais uma vez, &eacute; poss&iacute;vel poupar recursos do servidor com uma simples mudan&ccedil;a:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.site.com/wp-content/themes/themename/style.css&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div><p>Esses foram somente 2 exemplos, mas existem muitas outra chamadas a fun&ccedil;&otilde;es &#8220;desnecess&aacute;rias&#8221; quando se baixa um tema, seja ele gratuito ou pago. Vasculhe os arquivos do tema usado e substitua por conte&uacute;do est&aacute;tico sempre que poss&iacute;vel.</p><p>E voc&ecirc;, tem mais alguma dica para o <strong>desenvolvimento de temas WordPress melhores</strong>? Comente!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/" title="Otimização WordPress: aumente a performance e desempenho de seu blog / site">Otimização WordPress: aumente a performance e desempenho de seu blog / site</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/truques-de-configuracao-do-wordpress/" title="Truques de configuração do WordPress">Truques de configuração do WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/" title="Ferramentas e recursos para desenvolvimento web">Ferramentas e recursos para desenvolvimento web</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/newsletter-no-wordpress-com-o-plugin-ajax-newsletter-wp-ajax-newsletter/" title="Newsletter no WordPress com o plugin Ajax Newsletter (wp-ajax-newsletter)">Newsletter no WordPress com o plugin Ajax Newsletter (wp-ajax-newsletter)</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/pergunte-se-a-si-mesmo-questoes-para-desenvolver-um-bom-site/" title="Pergunte-se a si mesmo: questões para desenvolver um bom site">Pergunte-se a si mesmo: questões para desenvolver um bom site</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/como-usar-qualquer-tipo-fonte-tipografica-em-seu-blog-wordpress/" title="Como usar qualquer tipo (fonte tipográfica) em seu blog WordPress">Como usar qualquer tipo (fonte tipográfica) em seu blog WordPress</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/elxV4VkOgHD2WCdJ0fSxzpPSGf8/0/da"><img src="http://feedads.g.doubleclick.net/~a/elxV4VkOgHD2WCdJ0fSxzpPSGf8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/elxV4VkOgHD2WCdJ0fSxzpPSGf8/1/da"><img src="http://feedads.g.doubleclick.net/~a/elxV4VkOgHD2WCdJ0fSxzpPSGf8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=eU584go7cBg:wm1jQOf2kGA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=eU584go7cBg:wm1jQOf2kGA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=eU584go7cBg:wm1jQOf2kGA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=eU584go7cBg:wm1jQOf2kGA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=eU584go7cBg:wm1jQOf2kGA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=eU584go7cBg:wm1jQOf2kGA:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/eU584go7cBg" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/feed/</wfw:commentRss> <slash:comments>13</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/</feedburner:origLink></item> <item><title>URLs longas apresentadas corretamente com CSS</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/6UoVPnDHHp8/</link> <comments>http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/#comments</comments> <pubDate>Mon, 25 Oct 2010 12:00:57 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[css]]></category> <category><![CDATA[Design]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Layout]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=667</guid> <description><![CDATA[Apresentar corretamente URLs e outros textos longos &eacute; essencial para um layout consistente e de qualidade. Saiba como fazer isso lendo este artigo!]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/10/urls-longas-apresentadas-corretamente-com-css.jpg" alt="URLs longas apresentadas corretamente com CSS" title="" width="250" height="250" class="aligncenter size-full wp-image-670" /></p><p>Principalmente em blogs sobre <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a> &#8211; ou que n&atilde;o sejam, mas que precisem, eventualmente, <strong>apresentar URLs longas</strong> -, a indica&ccedil;&atilde;o de endere&ccedil;os completos da internet e/ou da web geralmente se faz necess&aacute;ria. Mas &eacute; preciso saber como estilizar corretamente estes endere&ccedil;os atrav&eacute;s de <strong>regras CSS</strong> para que sua apresenta&ccedil;&atilde;o n&atilde;o fique &#8220;quebrada&#8221; dentro do layout feito.</p><div
class="artigo-traduzido"> Este &eacute; um artigo traduzido do original &#8220;<a
href="http://perishablepress.com/press/2010/06/01/wrapping-content/">Wrapping Long URLs and Text Content with CSS</a>&#8220;, do blog <a
href="http://perishablepress.com/">Perishable Press</a>, e sofreu pequenas modifica&ccedil;&otilde;es.</div><p>Para apresentar corretamente <strong>URLs longas</strong>, seq&uuml;&ecirc;ncias de texto e outros conte&uacute;dos, basta utilizar esta regra CSS em qualquer elemento em<a
href="http://htmlhelp.com/reference/html40/block.html"> n&iacute;vel de bloco</a> (por exemplo, &eacute; perfeito para tags &lt;pre&gt;):</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">pre <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> pre<span style="color: #00AA00;">;</span>           <span style="color: #808080; font-style: italic;">/* CSS 2.0 */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> pre-wrap<span style="color: #00AA00;">;</span>      <span style="color: #808080; font-style: italic;">/* CSS 2.1 */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> pre-line<span style="color: #00AA00;">;</span>      <span style="color: #808080; font-style: italic;">/* CSS 3.0 */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> -pre-wrap<span style="color: #00AA00;">;</span>     <span style="color: #808080; font-style: italic;">/* Opera 4-6 */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> -o-pre-wrap<span style="color: #00AA00;">;</span>   <span style="color: #808080; font-style: italic;">/* Opera 7 */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> -moz-pre-wrap<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Mozilla */</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> -hp-pre-wrap<span style="color: #00AA00;">;</span>  <span style="color: #808080; font-style: italic;">/* HP Printers */</span>
word-wrap<span style="color: #00AA00;">:</span> break-word<span style="color: #00AA00;">;</span>      <span style="color: #808080; font-style: italic;">/* IE 5+ */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Por padr&atilde;o, o valor da <a
href="http://www.w3.org/TR/CSS21/text.html#white-space-prop">propriedade white-space</a> &eacute; definido como &#8220;normal&#8221;. Ent&atilde;o, voc&ecirc; pode ver algo como isto quando tenta &#8220;for&ccedil;ar&#8221; URLs longas e outras seq&uuml;&ecirc;ncias cont&iacute;nuas de texto:</p><p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/10/urls-longas-apresentadas-corretamente-com-css-errado.gif" alt="URLs longas apresentadas corretamente com CSS: errado" title="" width="477" height="245" class="aligncenter size-full wp-image-668" /></p><p>Para &#8220;for&ccedil;ar&#8221; fragmentos de texto longos e cont&iacute;nuos que s&atilde;o &#8220;envolvidos&#8221; dentro da largura do &lt;pre&gt; (ou outro elemento n&iacute;vel de bloco, como &lt;div&gt; ou &lt;p&gt;), &eacute; necess&aacute;rio um valor diferente para a propriedade <em>white-space</em>. As op&ccedil;&otilde;es poss&iacute;veis s&atilde;o:</p><ul><li><strong>normal.</strong> O valor padr&atilde;o para a propriedade white-space. Sequ&ecirc;ncias de espa&ccedil;os em branco s&atilde;o &#8220;recolhidos&#8221; a um &uacute;nico espa&ccedil;o em branco. O conte&uacute;do de &lt;pre&gt; ir&aacute; se adequar &agrave; largura do elemento.</li><li><strong>nowrap.</strong> Sequ&ecirc;ncias de espa&ccedil;os em branco s&atilde;o recolhidos a um &uacute;nico espa&ccedil;o em branco. Os conte&uacute;dos de &lt;pre&gt; pulam de linha SOMENTE em elementos com &lt;br /&gt;.</li><li><strong>pre.</strong> Todos os espa&ccedil;os em branco s&atilde;o preservados e o conte&uacute;do de &lt;pre&gt; ir&aacute; pular de linha de forma impl&iacute;cita. Esse &eacute; o comportamento padr&atilde;o do elemento &lt;pre&gt;.</li><li><strong>pre-line.</strong> Sequ&ecirc;ncias de espa&ccedil;os em branco se recolhem a um &uacute;nico espa&ccedil;o em branco; o conte&uacute;do de &lt;pre&gt; ir&aacute; dar <em>wrap</em> em espa&ccedil;os em branco e quebras de linha acontecem de acordo com a largura do elemento.</li><li><strong>pre-wrap.</strong> Todos os espa&ccedil;os em branco s&atilde;o preservados e o conte&uacute;do de &lt;pre&gt; ir&aacute; se comportar de acordo com os espa&ccedil;os em branco e quebras de linha de acordo com a largura do elemento.</li><li><strong>inherit.</strong> Valor de <em>white-space</em> herdado do elemento pai.</li></ul><p>Em um mundo perfeito, n&oacute;s poder&iacute;amos simplesmente usar &#8220;white-space:pre-line&#8221; dessa forma:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">pre <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> pre-line<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Embora a propriedade <em>white-space</em> seja, teoricamente, suportada por todos os principais navegadores, infelizmente muitos deles falham e n&atilde;o conseguem aplicar corretamente a propriedade para strings longos.</p><p>Diferentes navegadores far&atilde;o o <em>wrap</em> (&#8220;quebrar&#8221; o texto) em textos longos, mas exigem valores diferentes de white-space para trabalhar. Felizmente, podemos aplicar os valores necess&aacute;rios para <strong>cada navegador</strong> incluindo v&aacute;rias declara&ccedil;&otilde;es de <em>white-space</em>. Essa &eacute; exatamente a solu&ccedil;&atilde;o apresentada no c&oacute;digo CSS mostrado no in&iacute;cio do artigo.</p><p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/10/urls-longas-apresentadas-corretamente-com-css-certo.gif" alt="URLs longas apresentadas corretamente com CSS: certo" title="" width="477" height="165" class="aligncenter size-full wp-image-669" /></p><p>Os coment&aacute;rios inclu&iacute;dos na solu&ccedil;&atilde;o CSS mostram qual solu&ccedil;&atilde;o se aplica a cada browser. Observe que algumas das regras s&atilde;o espec&iacute;ficas de alguns navegadores (veja os prefixos espec&iacute;ficos dos fornecedores), enquanto outros declaram valores default a partir de diferentes especifica&ccedil;&otilde;es CSS.</p><p>A estranha propriedade &#8220;word-wrap&#8221; &eacute; uma inven&ccedil;&atilde;o da Microsoft que foi inclu&iacute;do no CSS3. Gra&ccedil;as &agrave;s &#8220;CSS forward compatibility guidelines&#8221;, &eacute; perfeitamente poss&iacute;vel incluir v&aacute;rias inst&acirc;ncias da mesma propriedade. Em poucas palavras:</p><p><strong></p><ul><li>Propriedades n&atilde;o reconhecidas s&atilde;o ignoradas</li><li>Para v&aacute;rias declara&ccedil;&otilde;es da mesma propriedade, somente a &uacute;ltima tem validade</li></ul><p></strong></p><p>A solu&ccedil;&atilde;o de c&oacute;digo apresentada neste artigo parece funcionar bem em todos os navegadores, mas ela n&atilde;o valida (segundo o <a
href="http://www.w3.org/">W3C</a>) devido &agrave; louca propriedade da Microsoft.</p><p>Para ver os conceitos aqui mostrados na pr&aacute;tica, veja uma <a
href="http://perishablepress.com/press/wp-content/online/demos/css-wrap-demo.html">p&aacute;gina de exemplo</a> e, para uma discuss&atilde;o mais completa sobre a quebra autom&aacute;tica de texto, confira o artigo <a
href="http://perishablepress.com/press/2009/11/09/perfect-pre-tags/">Perfect Pre Tags</a>, tamb&eacute;m do blog <a
href="http://perishablepress.com/">Perishable Press</a>.</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/" title="Estratégia de Conteúdo ou Content Strategy">Estratégia de Conteúdo ou Content Strategy</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/ferramentas-criacao-wireframes/" title="Ferramentas para criação de wireframes">Ferramentas para criação de wireframes</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/JtThqW3R9lRPqYDMSc5kBFSUeE4/0/da"><img src="http://feedads.g.doubleclick.net/~a/JtThqW3R9lRPqYDMSc5kBFSUeE4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JtThqW3R9lRPqYDMSc5kBFSUeE4/1/da"><img src="http://feedads.g.doubleclick.net/~a/JtThqW3R9lRPqYDMSc5kBFSUeE4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=6UoVPnDHHp8:5Hzze6Gjj6A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=6UoVPnDHHp8:5Hzze6Gjj6A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=6UoVPnDHHp8:5Hzze6Gjj6A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=6UoVPnDHHp8:5Hzze6Gjj6A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=6UoVPnDHHp8:5Hzze6Gjj6A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=6UoVPnDHHp8:5Hzze6Gjj6A:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/6UoVPnDHHp8" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/feed/</wfw:commentRss> <slash:comments>14</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/</feedburner:origLink></item> <item><title>Novas tecnologias exigem novas maneiras de se comunicar</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/ksI_67INDAg/</link> <comments>http://desenvolvimentoparaweb.com/miscelanea/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar/#comments</comments> <pubDate>Mon, 20 Sep 2010 13:00:11 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[miscelânea]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Web]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=664</guid> <description><![CDATA[Assista ao v&iacute;deo que mostra que novas tecnologias exigem novas maneiras de se comunicar.]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><img
class="aligncenter size-full wp-image-665" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/09/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar.jpg" alt="Novas tecnologias exigem novas maneiras de se comunicar" width="265" height="230" /></p><p>&Eacute; bastante comum ao desenvolvedor web se deparar com casos em que deve justificar as a&ccedil;&otilde;es que toma em seu trabalho &#8211; chamado por alguns de &#8220;defesa do trabalho&#8221;. E, nessas situa&ccedil;&otilde;es, &eacute; importante saber como argumentar com o cliente, &agrave;s vezes sobre como a comunica&ccedil;&atilde;o na web &eacute; diferente e peculiar em rela&ccedil;&atilde;o a outras m&iacute;dias.</p><p>Recentemente, conheci o excelente v&iacute;deo (que vi no <a
href="http://www.publicidadenaweb.com/">Publicidade na Web</a>) intitulado &#8220;Como a internet mudou a propaganda&#8221; que, de uma maneira bastante simples de se entender, explica algumas dessas peculiaridades, refor&ccedil;ando o conceito de que <strong>novas  tecnologias exigem novas maneiras de se comunicar</strong>!</p><p
style="text-align: center;"><iframe
src="http://player.vimeo.com/video/9883036?title=0&amp;byline=0&amp;portrait=0&amp;color=c9ff23" frameborder="0" height="400" width="500"></iframe></p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/web-sites-genericos-e-a-ilusao-dos-precos-baixos/" title="Web sites genéricos e a ilusão dos preços baixos">Web sites genéricos e a ilusão dos preços baixos</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/" title="Estratégia de Conteúdo ou Content Strategy">Estratégia de Conteúdo ou Content Strategy</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/" title="10 dicas que desenvolvedores web iniciantes devem saber">10 dicas que desenvolvedores web iniciantes devem saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/" title="Cores na web: guia completo">Cores na web: guia completo</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/" title="Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada">Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Utl6ZNeHBNWZ8lfRExVbMERLr2A/0/da"><img src="http://feedads.g.doubleclick.net/~a/Utl6ZNeHBNWZ8lfRExVbMERLr2A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Utl6ZNeHBNWZ8lfRExVbMERLr2A/1/da"><img src="http://feedads.g.doubleclick.net/~a/Utl6ZNeHBNWZ8lfRExVbMERLr2A/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ksI_67INDAg:lXbKRz2bJoY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ksI_67INDAg:lXbKRz2bJoY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ksI_67INDAg:lXbKRz2bJoY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ksI_67INDAg:lXbKRz2bJoY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ksI_67INDAg:lXbKRz2bJoY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ksI_67INDAg:lXbKRz2bJoY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/ksI_67INDAg" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/miscelanea/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/miscelanea/novas-tecnologias-exigem-novas-maneiras-de-se-comunicar/</feedburner:origLink></item> <item><title>Erros comuns em desenvolvimento web para campanhas de SEO</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/ZDYH9jIhr2k/</link> <comments>http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/#comments</comments> <pubDate>Mon, 16 Aug 2010 13:00:14 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[SEO]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Planejamento]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=659</guid> <description><![CDATA[Conhe&ccedil;a erros comuns em desenvolvimento web para campanhas de SEO e saiba como evit&aacute;-los]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/08/erros-comuns-desenvolvimento-web-campanhas-seo.jpg" alt="Erros comuns em desenvolvimento web para campanhas de SEO" title="" width="250" height="250" class="aligncenter size-full wp-image-660" /><br
/> Uma <strong>boa campanha de SEO</strong> acontece quando v&aacute;rias a&ccedil;&otilde;es de otimiza&ccedil;&atilde;o s&atilde;o realizadas, conjunta e simultaneamente. E, certamente, uma dos aspectos da <strong>estrat&eacute;gia de uma a&ccedil;&atilde;o de SEO</strong> s&atilde;o as a&ccedil;&otilde;es t&eacute;cnicas tomadas no <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a>.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://www.webseoanalytics.com/blog/common-web-development-mistakes/">Why my SEO campaign failed? Part 2: Common Web Development mistakes</a>&#8220;, do blog <a
title="Visitar o CSS-Tricks." href="http://www.webseoanalytics.com/blog/">Web SEO Analytics</a>, e sofreu pequenas modifica&ccedil;&otilde;es.</div><h2>Passar muitos argumentos no URL</h2><p>Quando o site &eacute; din&acirc;mico, os desenvolvedores web precisam ter uma refer&ecirc;ncia sobre o qual a p&aacute;gina, o produto ou categoria o visitante quer ver. Normalmente um ID &eacute; necess&aacute;rio para recuperar os dados do banco de dados. Em outros casos, devido &agrave; <strong>complexidade do projeto</strong> ou devido a <strong>m&aacute;s t&eacute;cnicas de programa&ccedil;&atilde;o</strong>, mais vari&aacute;veis s&atilde;o necess&aacute;rias para identificar uma determinada p&aacute;gina. Aqui est&aacute; um exemplo de um URL din&acirc;mico:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;">http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.exemplo.com/produtos.php?id=30&amp;amp;categoria=2&amp;amp;cor=verde</span></pre></div></div><p>Infelizmente, este tipo de URL n&atilde;o &eacute; amig&aacute;vel nem para pessoas, nem para mecanismos de busca. Segundo &eacute; poss&iacute;vel ler nas <a
href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769#2">Diretrizes T&eacute;cnicas das Diretrizes para Webmasters da Central do Webmaster Google</a>,</p><blockquote><p>Se voc&ecirc; decidir usar p&aacute;ginas din&acirc;micas (por exemplo, o URL que cont&eacute;m um caractere &#8220;?&#8221;), saiba que nem todos os spiders de mecanismos de pesquisa rastreiam as p&aacute;ginas din&acirc;micas e est&aacute;ticas. Isso ajuda a manter os par&acirc;metros curtos e a quantidade desses par&acirc;metros pequena.</p></blockquote><p>Por isso, &eacute; altamente recomendado usar algum tipo de <strong>reescrita de URL</strong>, como mod_rewrite, para converter as URLs din&acirc;micas para URLs amig&aacute;veis. Qual &eacute; o risco, se isso n&atilde;o for feito? Bem, se h&aacute; muitos par&acirc;metros em URLs: os motores de busca podem n&atilde;o indexar as p&aacute;ginas; al&eacute;m disso, geralmente  URLs n&atilde;o amig&aacute;veis n&atilde;o cont&eacute;m palavras-chave importantes no endere&ccedil;o, ent&atilde;o, n&atilde;o raramente voc&ecirc; pode conseguir&aacute; rankings inferiores para essas p&aacute;ginas do que se elas tivessem URLs amig&aacute;veis.</p><h2>Usar muito JavaScript, frames/iframes, AJAX, Flash e Silverlight</h2><p>JavaScript, frames/iframes, AJAX, Flash e Silverlight s&atilde;o ferramentas &uacute;teis e alguns deles, quando bem usados, melhoram a experi&ecirc;ncia do usu&aacute;rio. Mas nenhum deles &eacute; <em>search engine friendly</em>.</p><p>As mesmas <a
href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769#2">Diretrizes T&eacute;cnicas do Google</a> citadas, indicam:</p><blockquote><p>Use um navegador de texto como o Lynx para examinar o seu site, pois muitos spiders de mecanismos de pesquisa veem o site do mesmo modo que o Lynx. Se recursos especiais como JavaScript, cookies, IDs de sess&atilde;o, frames, DHTML ou Flash permitirem que voc&ecirc; veja todo o site em um navegador de texto, os spiders dos mecanismos de pesquisa poder&atilde;o ter dificuldade em rastrear o seu site.</p></blockquote><p>Se o objetivo &eacute; que <strong>o site seja amig&aacute;vel aos mecanismos de busca</strong>, devemos verificar se eles podem ser vistos usando browsers de texto simples como o Lynx (que &eacute; como o googlebot &#8220;v&ecirc;&#8221; os sites). &Eacute; poss&iacute;vel usar emuladores do Lynx ou desabilitar CSS e imagens diretamente no navegador (se usar, Firefox, uma &oacute;tima op&ccedil;&atilde;o &eacute; usar o plugin <a
href="https://addons.mozilla.org/pt-BR/firefox/addon/60/">Web Developer</a>).</p><h2>N&atilde;o usar o atributo alt em imagens e n&atilde;o otimizar o caminho das imagens</h2><p>Os motores de busca (e computadores, em geral) n&atilde;o s&atilde;o muito bons em identificar o que &eacute; representado em uma imagem. Portanto, a fim de compreender sobre o que uma imagem &eacute;, os bots analisam o nome e o atributo &#8220;alt&#8221; das imagens.</p><p>O Google Image Search pode trazer uma quantidade significativa de tr&aacute;fego. Se voc&ecirc; n&atilde;o garantir o &#8220;apoio&#8221; a mecanismos que permitam a otimiza&ccedil;&atilde;o de imagens, voc&ecirc; pode perder uma boa fonte de tr&aacute;fego. Assim, garanta que voc&ecirc; use corretamente ambos, o atributo alt e o nome da imagem &#8211; usar um CMS que permita esse tipo de otimiza&ccedil;&atilde;o &eacute; uma boa dica.</p><h2>Usar m&eacute;todos incorretos para oferecer suporte a idiomas diferentes</h2><p>Quando voc&ecirc; tem sites multil&iacute;ngue, tenha certeza de que a arquitetura est&aacute; correta. N&atilde;o h&aacute; uma &uacute;nica forma &#8220;correta&#8221; para fazer isso. Basicamente, h&aacute; tr&ecirc;s maneiras corretas para suportar um site em v&aacute;rios idiomas e cada um dos m&eacute;todos a seguir tem alguns pr&oacute;s e contras:</p><ul><li><strong>Subdom&iacute;nios.</strong> Exemplo: fr.example.com, gr.example.com, etc</li><li><strong>Subdiret&oacute;rios.</strong> Exemplo: www.example.com/fr/, www.example.com/gr/, etc</li><li><strong>Diferente dom&iacute;nios.</strong> Exemplo: www.example.fr, www.example.gr, etc</li></ul><p>A dica &eacute; evitar o envio de conte&uacute;do baseado em IP sem ter a mesma vers&atilde;o do site dispon&iacute;vel para todos. Tamb&eacute;m n&atilde;o implementar solu&ccedil;&otilde;es ruins como passar o idioma como uma vari&aacute;vel GET, por exemplo www.example.com/?lang=fr.</p><h2>N&atilde;o se preocupar com o tempo de carregamento da p&aacute;gina</h2><p>Recentemente o Google informou que passou a usar a <strong>velocidade de carregamento</strong> dos websites em seus algoritmos de classifica&ccedil;&atilde;o (apesar de isso n&atilde;o estar valendo para sites de todos os pa&iacute;ses do mundo). H&aacute; um debate sobre se esse recurso deve ser inclu&iacute;do, uma vez que n&atilde;o tem nada a ver com a relev&acirc;ncia de um site. No entanto, a velocidade aumenta a <strong>experi&ecirc;ncia do usu&aacute;rio</strong>. Al&eacute;m disso, ter um site leve, que carregue rapidamente, pode melhorar seu ROI e diminuir a carga do seu servidor (conhe&ccedil;a <a
href="http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/">8 maneiras de melhorar a performance de um site</a>).</p><h2>7 dicas de desenvolvimento web</h2><p>Algumas dicas para guiar o desenvolvimento de suas p&aacute;ginas web s&atilde;o:</p><ul><li>Colocar menus, cabe&ccedil;alhos e rodap&eacute;s em arquivos separados, a fim de realizar mudan&ccedil;as globais r&aacute;pidas (fun&ccedil;&otilde;es &#8220;include);</li><li>Tentar usar subdom&iacute;nios em sites multi idioimas;</li><li>Usar caminhos absolutos para cada p&aacute;gina, imagem, CSS e javascript do site;</li><li>Usar canonicals para evitar conte&uacute;do duplicado;</li><li>Usar redirecionamento 301 ao inv&eacute;s de 302 quando o caminho para a p&aacute;gina mudar e nunca apagar p&aacute;ginas;</li><li>Redirecione corretamente as vers&otilde;es sem &#8220;www&#8221; para as que tenham &#8220;www&#8221; e vice-versa;</li><li>N&atilde;o adicionar IDs de sess&atilde;o nas URLs.</li></ul><p>E voc&ecirc;, conhece algum outro <strong>erro comum em desenvolvimento web</strong> que pode atrapalhar uma <strong>campanha de SEO</strong> e o que fazer para evitar/corrigir?</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/xhtml/meta-tags/" title="Meta tags">Meta tags</a></li><li><a
href="http://desenvolvimentoparaweb.com/blogs/maneiras-praticas-para-melhorar-a-visitacao-de-seu-blog-e-fidelizar-seus-leitores/" title="Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores">Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/" title="Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada">Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/como-otimizar-imagens-web-internet/" title="Como otimizar imagens para web: guia de otimização de imagens">Como otimizar imagens para web: guia de otimização de imagens</a></li><li><a
href="http://desenvolvimentoparaweb.com/midia-social/mastering-twitter-o-manual-completo-sobre-twitter-para-desenvolvedores-e-marketeiros/" title="Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros">Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/8-caracteristicas-de-user-interfaces-ui-de-sucesso/" title="8 características de User Interfaces (UI) de sucesso">8 características de User Interfaces (UI) de sucesso</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/BLCFjsZVblXz78ziQZxrbECsJZU/0/da"><img src="http://feedads.g.doubleclick.net/~a/BLCFjsZVblXz78ziQZxrbECsJZU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BLCFjsZVblXz78ziQZxrbECsJZU/1/da"><img src="http://feedads.g.doubleclick.net/~a/BLCFjsZVblXz78ziQZxrbECsJZU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZDYH9jIhr2k:4PQrzRi8-Mg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZDYH9jIhr2k:4PQrzRi8-Mg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZDYH9jIhr2k:4PQrzRi8-Mg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZDYH9jIhr2k:4PQrzRi8-Mg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=ZDYH9jIhr2k:4PQrzRi8-Mg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=ZDYH9jIhr2k:4PQrzRi8-Mg:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/ZDYH9jIhr2k" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/feed/</wfw:commentRss> <slash:comments>18</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/</feedburner:origLink></item> <item><title>Melhorando a interação em formulários de busca</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/5TEtyWe-Adw/</link> <comments>http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/#comments</comments> <pubDate>Tue, 03 Aug 2010 19:44:05 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[jquery]]></category> <category><![CDATA[Usabilidade]]></category> <category><![CDATA[Exemplos]]></category> <category><![CDATA[Otimização]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=657</guid> <description><![CDATA[Aprenda a melhorar a intera&ccedil;&atilde;o em formul&aacute;rios de busca com poucas linhas de c&oacute;digo e aumente a usabilidade de seu form de busca]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/08/melhorar-interacao-formularios-busca.jpg" alt="Melhorando a intera&ccedil;&atilde;o em formul&aacute;rios de busca" title="" width="250" height="250" class="aligncenter size-full wp-image-658" /></p><p>Melhorar a intera&ccedil;&atilde;o do campo de busca de um site permite que as pessoas que usam tal formul&aacute;rio para buscar tenham uma melhor experi&ecirc;ncia de uso (leia-se: <strong>usabilidade</strong>). Com pequenos detalhes, um pouquinho de bom-senso e algumas poucas linhas de jQuery, &eacute; poss&iacute;vel promover efeitos interessante no campo de busca.</p><p>Para ficar claro, ser&aacute; abordada a seguinte intera&ccedil;&atilde;o:</p><ul><li>Campo de busca &eacute; &#8220;populado&#8221; com um termo pr&eacute;-definido;</li><li>Quando o campo recebe o foco, caso tenha o termo pr&eacute;-definido, &eacute; limpo para a pessoa escrever o que pretende;</li><li>Quando o campo perde o foco, se o conte&uacute;do for o mesmo do termo pr&eacute;-definido (ou em branco), este termo reaparece;</li><li>Quando o bot&atilde;o &eacute; pressionado, caso o valor seja termo pr&eacute;-definido ou esteja em branco, o form n&atilde;o submete e o foco passa ao campo apropriado.</li></ul><h2>O formul&aacute;rio de busca</h2><p>Um exemplo de um formul&aacute;rio simples de busca, que pode ser usado em &#8220;sites reais&#8221;, profissionalmente, pode ser do tipo:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;get&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;script.php&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form-input&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form-input&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Snippets ou Scripts&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form-submit&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form-submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Buscar&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span></pre></div></div><h2>Termo pr&eacute;-definido</h2><p>A express&atilde;o &#8220;termo pr&eacute;-definido&#8221; &eacute; mais adequada, j&aacute; que cada site pede um &#8220;label&#8221; de indica&ccedil;&atilde;o diferente, conforme as especifica&ccedil;&otilde;es e necessidades deste. Algumas pessoas preferem o termo &#8220;Buscar&#8221; ou &#8220;Procurar&#8221; com um bot&atilde;o de label &#8220;OK&#8221; ou &#8220;Vai&#8221;; j&aacute; alguns sites preferem explicitar a fun&ccedil;&atilde;o da busca com algo do tipo &#8220;Produtos ou Servi&ccedil;os&#8221;, acompanhado de um bot&atilde;o com o label &#8220;Buscar&#8221; (o que &eacute; uma abordagem bem interessante).</p><p>De uma maneira ou de outra, &eacute; preciso definir que termo ser&aacute; esse. Para nosso exemplo, vamos supor que seja um site voltado a <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento web</a> e o termo pr&eacute;-definido ser&aacute; &#8220;<strong>Snippets ou Scripts</strong>&#8220;. Vamos criar uma express&atilde;o regular simples com uma parte do termo pr&eacute; definido:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">patt <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Snippets ou'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>E por que n&atilde;o colocar a express&atilde;o inteira? Tamb&eacute;m poderia ser feito, mas o &#8220;esfor&ccedil;o&#8221; para identificar o padr&atilde;o aumenta em rela&ccedil;&atilde;o ao tamanho/complexidade da mesma. Sinta-se &agrave; vontade para fazer v&aacute;rios testes.</p><h2>Melhorando a intera&ccedil;&atilde;o do formul&aacute;rio de busca</h2><p>A melhora da intera&ccedil;&atilde;o se de duas formas:</p><ul><li>Inter&ccedil;&atilde;o com o campo;</li><li>Intera&ccedil;&atilde;o com o bot&atilde;o;</li></ul><h3>Intera&ccedil;&atilde;o com o campo</h3><p>Segundo o planejamento, o que se pretende &eacute; &#8220;Quando o campo recebe o foco, caso tenha o termo pr&eacute;-definido, &eacute; limpo para a pessoa escrever o que pretende&#8221;. A l&oacute;gica &eacute; testar a express&atilde;o regular: caso o teste seja positivo, o campo &eacute; limpo e recebe o foco para a pessoa escrever. Ao perder o foco, &#8220;se o conte&uacute;do for o mesmo do termo pr&eacute;-definido (ou em branco), este termo reaparece&#8221;.</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>
.<span style="color: #000066;">focus</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>patt.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
.<span style="color: #000066;">blur</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Snippets ou Scripts'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</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></div></div><h3>Intera&ccedil;&atilde;o com o bot&atilde;o</h3><p>A <strong>intera&ccedil;&atilde;o com o bot&atilde;o</strong> tamb&eacute;m &eacute; importante &#8211; e, infelizmente, &eacute; um ponto esquecido por muitos desenvolvedores. A ideia &eacute;, ao se clicar no bot&atilde;o, testar se a express&atilde;o &#8220;bate&#8221; ou o campo est&aacute; em branco e, caso seja um desses casos, dar o foco no campo.</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span>patt.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#busca-bottom'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Impede que o form seja submetido</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></div></div><p>N&atilde;o &eacute; necess&aacute;rio dar a instru&ccedil;&atilde;o de limpar o campo no foco porque a pe&ccedil;a de script anterior, sobre a intera&ccedil;&atilde;o com o campo, j&aacute; faz isso.</p><h3>JavaScript final</h3><p>Juntando os peda&ccedil;os de c&oacute;digos, j&aacute; devidamente explicados, tem-se o seguinte:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>
.<span style="color: #000066;">focus</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>patt.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
.<span style="color: #000066;">blur</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Snippets ou Scripts'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span>patt.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#form-input'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#busca-bottom'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Impede que o form seja submetido</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></div></div><h2>Conclus&atilde;o sobre a melhora da intera&ccedil;&atilde;o em formul&aacute;rios de busca</h2><p>Certamente essas n&atilde;o s&atilde;o as &uacute;nicas melhorias cab&iacute;veis para a <strong>melhoria de usabilidade</strong> e <strong>intera&ccedil;&atilde;o</strong> de um formul&aacute;rio de busca simples, mas, certamente, s&atilde;o 2 medidas muito bem-vindas para que a experi&ecirc;ncia e &#8220;agradabilidade&#8221; sejam melhoradas.</p><p>Poderia haver, por exemplo, uma <em>tooltip</em> com o que se pode encontrar no site e/ou fornecendo algum exemplo de termo; implementar uma solu&ccedil;&atilde;o de <em>autocomplete</em>; ou, ao inv&eacute;s de limpar o campo, apenas selecionar todo o termo para, j&aacute; digita&ccedil;&atilde;o, substitu&iacute;-lo pelo o que est&aacute; sendo digitado. Depende da necessidade do projeto.</p><p>E voc&ecirc;, tem alguma <strong>dica ou solu&ccedil;&atilde;o interessante</strong> para melhorar a intera&ccedil;&atilde;o em formul&aacute;rios de busca?</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/" title="Melhores editores WYSIWYG para seu projeto">Melhores editores WYSIWYG para seu projeto</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/bZL9EPUWz-33ZS4H6qM2VFLzfmE/0/da"><img src="http://feedads.g.doubleclick.net/~a/bZL9EPUWz-33ZS4H6qM2VFLzfmE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bZL9EPUWz-33ZS4H6qM2VFLzfmE/1/da"><img src="http://feedads.g.doubleclick.net/~a/bZL9EPUWz-33ZS4H6qM2VFLzfmE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=5TEtyWe-Adw:UGYiOzOFiU8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=5TEtyWe-Adw:UGYiOzOFiU8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=5TEtyWe-Adw:UGYiOzOFiU8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=5TEtyWe-Adw:UGYiOzOFiU8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=5TEtyWe-Adw:UGYiOzOFiU8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=5TEtyWe-Adw:UGYiOzOFiU8:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/5TEtyWe-Adw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/</feedburner:origLink></item> <item><title>Textarea: dicas e truques que você sempre quis saber</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/9dY4y8Qz6-I/</link> <comments>http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/#comments</comments> <pubDate>Mon, 26 Jul 2010 13:00:34 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[html]]></category> <category><![CDATA[Interface]]></category> <category><![CDATA[Otimização]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=655</guid> <description><![CDATA[Textarea: dicas e truques para melhorar as intera&ccedil;&otilde;es com &aacute;reas de texto em suas p&aacute;ginas]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/07/textarea-dicas-truques-html-jquery.gif" alt="Textarea: dicas e truques" title="" width="250" height="250" class="aligncenter size-full wp-image-656" /></p><p><strong>Textarea</strong> &eacute; um elemento b&aacute;sico de (X)HTML (especialmente formul&aacute;rios). Mas, muitos desconhecem, <strong>textareas possuem muitas peculiaridades</strong>, dicas e truques que permitem efeitos e intera&ccedil;&otilde;es interessant&iacute;ssimas. Eis uma bela cole&ccedil;&atilde;o de 9 truques e dica simples que voc&ecirc; pode fazer com textareas. Aproveite!</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://css-tricks.com/textarea-tricks/">Textarea Tricks</a>&#8220;, do blog <a
href="http://css-tricks.com/" title="Visitar o CSS-Tricks.">CSS-Tricks</a>, a tradu&ccedil;&atilde;o foi feita com autoriza&ccedil;&atilde;o do <a
href="http://chriscoyier.net/" title="Visitar o web site de Chris Coyier.">autor</a> e sofreu pequenas modifica&ccedil;&otilde;es.</div><h2>Imagem como background da textarea (desaparece quando recebe foco)</h2><p>&Eacute; poss&iacute;vel adicionar uma imagem de fundo para um textarea (assim como quase para qualquer outro elemento). &Agrave;s vezes, por algum motivo qualquer, quando se adiciona um background, isso pode &#8220;quebrar&#8221; o estilo padr&atilde;o do navegador para o textarea: o estilo de borda padr&atilde;o &#8211; 1px s&oacute;lido &#8211; &eacute; substitu&iacute;do por uma espessa borda chanfrada. Para restaurar o padr&atilde;o do navegador, &eacute; poss&iacute;vel, apenas, reestilizar a textarea.</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">textarea <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">img/textarea-background.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">center</span> <span style="color: #993333;">center</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* &quot;Quebra&quot; o padrão de textarea */</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#888</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* &quot;Restaura&quot; o padrão */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Essa imagem de fundo certamente ir&aacute; interferir com a legibilidade do texto quando as palavras come&ccedil;arem a &#8220;passar por cima&#8221;. Para resolver isso, basta uma solu&ccedil;&atilde;o simples (com <a
href="/categoria/jquery/">jQuery</a>) que faz o seguinte: retirar a imagem de background quando o textarea recebe foco e o coloca de volta no blur, caso nenhum texto tenha sido digitado.</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span>
  .<span style="color: #000066;">focus</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
  .<span style="color: #000066;">blur</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'url(img/textarea-background.png) center center no-repeat'</span><span style="color: #009900;">&#41;</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></div></div><h2>Texto com placeholder HTML5</h2><p>No HTML5, haver&aacute; um novo atributo: <em>placeholder</em>. Ele mostra um texto em cinza clarinho na &aacute;rea de texto que desaparece quando o textarea est&aacute; em foco ou tem algum valor.</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> placeholder<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;A vingança nunca é plena, mata a alma e a envenena!&quot;</span> <span style="color: #000066;">cols</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #000066;">rows</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;5&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">textarea</span>&gt;</span></pre></div></div><p>Texto via HTML5 placeholder funciona no Safari 5, Mobile Safari, Chrome 6 e Firefox 4 alpha.</p><h2>Texto com placeholder, HTML5 e jQuery</h2><p>&Eacute; poss&iacute;vel testar se um determinado elemento suporta um atributo, em particular, por meio de testes com JavaScript:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> elementSupportsAttribute<span style="color: #009900;">&#40;</span>element<span style="color: #339933;">,</span> attribute<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> test <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>attribute <span style="color: #000066; font-weight: bold;">in</span> test<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div><p>Ent&atilde;o, d&aacute; para escrever o c&oacute;digo de modo que se o browser suporta o atributo <em>placeholder</em>, ele o usa; se n&atilde;o, seu comportamento &eacute; &#8220;imitado&#8221; atrav&eacute;s de jQuery:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>elementSupportsAttribute<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'placeholder'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// Fallback for browsers that don't support HTML5 placeholder attribute</span>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#example-three&quot;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;originalText&quot;</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#example-three&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;color&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;#999&quot;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #000066;">focus</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: #003366; font-weight: bold;">var</span> $el <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">==</span> $el.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;originalText&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #000066;">blur</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: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;originalText&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// Browser does support HTML5 placeholder attribute, so use it.</span>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#example-three&quot;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;placeholder&quot;</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#example-three&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><h2>Remover o brilho azul</h2><p>Todos os browsers WebKit, o Firefox 3.6 e Opera 10 colocam uma borda azul brilhante <strong>ao redor de textareas</strong> quando est&atilde;o em foco. &Eacute; poss&iacute;vel remov&ecirc;-lo da seguinte forma:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">textarea <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Voc&ecirc; tamb&eacute;m pode aplicar &agrave; pseudo-classe <em>:focus</em> que vai funciona de qualquer maneira. Que saibamos, ainda n&atilde;o foi encontrada uma maneira de remover o brilho do Firefox e Opera. Se souber, por favor, comente!</p><h2>Remover resizer da textarea</h2><p>Navegadores baseados em WebKit colocam um pequeno elemento de UI no canto inferior direito das textareas para que os usu&aacute;rios possam redimensionar a &aacute;rea de texto. Se, por qualquer motivo, voc&ecirc; quiser remover isso, uma regra CSS simples &eacute; tudo o que voc&ecirc; precisa:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">textarea <span style="color: #00AA00;">&#123;</span>
resize<span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><h2>Adicionar resizer na textarea</h2><p>A <a
href="http://jqueryui.com/demos/resizable/" rel="nofollow">resizeable interaction do jQuery UI</a> pode ser usada em textareas. Ela funciona em todos os browsers e substitui a vers&atilde;o do WebKit nativa, j&aacute; que essa vers&atilde;o tem todos os tipos de coisas mirabolantes (como callbacks e anima&ccedil;&otilde;es).</p><p>Para usar a intera&ccedil;&atilde;o, &eacute; preciso carregar jQuery e jQuery UI em sua p&aacute;gina e usar o seguinte javascript:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">resizable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Fica a pergunta: usar jQuery e jQuery UI somente para adicionar o resize handle a suas textareas vale a pena? N&atilde;o uma &#8220;resposta certa&#8221; para a pergunta; s&oacute; voc&ecirc; pode julgar se isso &eacute; adequado &agrave;s necessidades e especifica&ccedil;&otilde;es de seu projeto.</p><h2>Auto-redimensionar conforme o conte&uacute;do</h2><p><a
href="http://james.padolsey.com/about/">James Padolsey</a> tem um script jQuery muito bom para <a
href="http://james.padolsey.com/javascript/jquery-plugin-autoresize/">auto redimensionar textareas conforme o conte&uacute;do</a>. A textarea come&ccedil;a com um tamanho normal razo&aacute;vel e, conforme voc&ecirc; digita mais e mais conte&uacute;do, ela se expande para incluir todo o texto, ao inv&eacute;s de mostrar a barra de rolagem padr&atilde;o.</p><p>O <em>plugin</em> tem uma variedade de op&ccedil;&otilde;es (<a
href="http://james.padolsey.com/javascript/jquery-plugin-autoresize/" rel="nofollow">confira</a>), mas, em sua forma mais simples de uso, basta carregar o arquivo do script e usar assim:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">autoResize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><h2>Nowrap (sem quebra de linha autom&aacute;tica)</h2><p>Para evitar a quebra de texto com CSS normalmente &eacute; usada a regra &#8220;<em>#seletor { white-space: nowrap; }</em>&#8220;. Mas, por alguma raz&atilde;o, isso n&atilde;o funciona com textareas. Se a intera&ccedil;&atilde;o que voc&ecirc; procura nas textareas &eacute; a linha n&atilde;o quebrar at&eacute; que o Enter seja pressionado, &eacute; preciso usar o atributo &#8220;wrap&#8221; com o valor &#8220;off&#8221;, da seguinte maneira:</p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> wrap<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;off&quot;</span> <span style="color: #000066;">cols</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #000066;">rows</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;5&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">textarea</span>&gt;</span></pre></div></div><h2>Remover barra padr&atilde;o do Internet Explorer</h2><p>O infame Internet Explorer coloca uma barra de rolagem vertical por padr&atilde;o em <strong>todas as textareas</strong>. &Eacute; poss&iacute;vel ocultar isso com &#8220;overflow: hidden&#8221;, mas ser&aacute; um problema se a barra de rolagem realmente for necess&aacute;ria em fun&ccedil;&atilde;o da quantidade de texto digitada. Felizmente, a propriedade <em>overflow</em> tem o valor &#8220;auto&#8221;, que exibe a barra de rolagem somente quando esta se fizer necess&aacute;ria. Fica assim:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">textarea <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><h2>Conclus&atilde;o</h2><p>Voc&ecirc; j&aacute; tinha pensado que tantas <strong>intera&ccedil;&otilde;es</strong> e <strong>modifica&ccedil;&otilde;es</strong> fossem poss&iacute;vel em um elemento de HTML t&atilde;o b&aacute;sico como textarea? Se voc&ecirc; quiser ser ainda mais ousado, com javascript e CSS &eacute; poss&iacute;vel obter efeitos e intera&ccedil;&otilde;es ainda melhores! A prop&oacute;sito, os exemplos mostrados no artigo podem ser testados <a
href="http://css-tricks.com/examples/TextareaTricks/" rel="nofollow">nesta p&aacute;gina</a>.</p><p>Se tiver alguma outra dica e/ou quiser mostrar algo de interessante que tenha feito em textareas, <strong>comente</strong>!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/" title="Melhorando a interação em formulários de busca">Melhorando a interação em formulários de busca</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/gradiente-css-cross-browser-degrades-css-sem-usar-imagens/" title="Gradiente CSS cross browser: degradês em CSS sem usar imagens">Gradiente CSS cross browser: degradês em CSS sem usar imagens</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/" title="Melhores editores WYSIWYG para seu projeto">Melhores editores WYSIWYG para seu projeto</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/fmg8it7Ese3Q20ZtSz8iEuKzPf0/0/da"><img src="http://feedads.g.doubleclick.net/~a/fmg8it7Ese3Q20ZtSz8iEuKzPf0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fmg8it7Ese3Q20ZtSz8iEuKzPf0/1/da"><img src="http://feedads.g.doubleclick.net/~a/fmg8it7Ese3Q20ZtSz8iEuKzPf0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=9dY4y8Qz6-I:zO1OkeFDZc0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=9dY4y8Qz6-I:zO1OkeFDZc0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=9dY4y8Qz6-I:zO1OkeFDZc0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=9dY4y8Qz6-I:zO1OkeFDZc0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=9dY4y8Qz6-I:zO1OkeFDZc0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=9dY4y8Qz6-I:zO1OkeFDZc0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/9dY4y8Qz6-I" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/</feedburner:origLink></item> <item><title>URLs amigáveis (slug) à WordPress</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/Qh9rrb5t0V8/</link> <comments>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/#comments</comments> <pubDate>Mon, 12 Jul 2010 14:40:36 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[php]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Otimização]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=652</guid> <description><![CDATA[Apenda a gerar URLs amig&aacute;veis como &eacute; feito no WordPress e implemente em seu sistema PHP]]></description> <content:encoded><![CDATA[<p><img
src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/07/urls-amigaveis-slug-wordpress.jpg" alt="URLs amig&aacute;veis (slug) WordPress" title="" width="300" height="300" class="aligncenter size-full wp-image-653" /></p><p>O <strong>desenvolvimento web em WordPress</strong> &eacute; excelente! O CMS j&aacute; vem com diversas fun&ccedil;&otilde;es e funcionalidades para facilitar a vida de desenvolvedores e, at&eacute; mesmo, de pessoas que n&atilde;o tem o m&iacute;nimo conhecimento em programa&ccedil;&atilde;o (um dos objetivos &eacute; esse, mesmo).</p><p>Mas muitos desenvolvedores, principalmente os ainda incipientes, esquecem que o WordPress nada mais &eacute; do que <strong>PHP</strong>! Claro, o WP &eacute; nada mais, nada menos, que um sistema feito em PHP, como voc&ecirc; e eu poder&iacute;amos ter feito. Mas, por motivos que me fogem ao conhecimento, as pessoas esquecem isso&#8230; Talvez o n&iacute;vel de abstra&ccedil;&atilde;o em programa&ccedil;&atilde;o que o CMS proporcione seja o &#8220;culpado&#8221;, mas, sinceramente, n&atilde;o tenho certeza.</p><p>Ent&atilde;o, se voc&ecirc; tiver a curiosidade de vasculhar os arquivos PHP que fazem do WordPress o que ele &eacute;, vai ter uma grata surpresa e encontrar uma rica fonte de scripts, fun&ccedil;&otilde;es e funcionalidades que voc&ecirc; sempre quis implementar e n&atilde;o sabia como!  :-D</p><h2>URLs amig&aacute;ves &agrave; WordPress</h2><p>Por exemplo, muitos querem implementar uma estrutura de URLs amig&aacute;ves (gerar os famosos &#8220;slugs&#8221;) em sistemas desenvolvidos do zero  &#8211; seja atrav&eacute;s de frameworks ou em PHPU (&#8220;PHP Unha&#8221;) -, mas n&atilde;o sabem como. Ora, se sabemos que o WordPress possui um &oacute;timo sistema de gera&ccedil;&atilde;o de slugs e temos acesso a seu c&oacute;digo-fonte, tudo o que &eacute; preciso &eacute; vasculhar o c&oacute;digo-fonte e encontrar as fun&ccedil;&otilde;es certas.</p><p>Seguindo o exemplo de <strong>gerar slugs</strong>, procurando um pouco, &eacute; poss&iacute;vel saber que as fun&ccedil;&otilde;es necess&aacute;rias se encontram em <strong>/wp-includes/formatting.php</strong>. E, como era de se esperar, as fun&ccedil;&otilde;es est&atilde;o devidamente documentadas com seu escopo, par&acirc;metros e retorno. Precisa de mais?</p><p>Para gerar URLs amig&aacute;veis &agrave; WordPress, s&atilde;o necess&aacute;rias 4 fun&ccedil;&otilde;es. 3 &#8220;preliminares&#8221; que s&atilde;o:</p><p><iframe
src="http://pastebin.com/embed_iframe.php?i=qyxBjkTs" style="border:none;width:100%;height:300px;"></iframe></p><p><iframe
src="http://pastebin.com/embed_iframe.php?i=veqTMpYX" style="border:none;width:100%;height:300px;"></iframe></p><p><iframe
src="http://pastebin.com/embed_iframe.php?i=WpCkCLJF" style="border:none;width:100%;height:300px;"></iframe></p><p>E, com essas fun&ccedil;&otilde;es devidamente estabelecidas, a fun&ccedil;&atilde;o que gera os slugs, propriamente dita:</p><p><iframe
src="http://pastebin.com/embed_iframe.php?i=PDMZqzN8" style="border:none;width:100%;height:300px;"></iframe></p><p>Ent&atilde;o, para gerar um slug em seu pr&oacute;prio sistema depois de implementar as fun&ccedil;&otilde;es mostradas, basta escrever:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
</pre></td><td
class="code"><pre class="php" style="font-family:monospace;">sanitize_title_with_dashes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>Achou o nome da fun&ccedil;&atilde;o grande ou feio? Voc&ecirc; tem o c&oacute;digo, altere como bem entender!</p><h2>Considera&ccedil;&otilde;es finais</h2><p>O WordPress &eacute; <strong>software livre</strong> (registrado sob a licen&ccedil;a <a
href="http://pt.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>), ent&atilde;o voc&ecirc; pode pegar essas 4 fun&ccedil;&otilde;es e implementar em seu site/sistema/softwares sem o medo de receber uma cartinha do advogado da equipe WordPress amanh&atilde; ou depois.</p><p>Fica uma pergunta: voc&ecirc; tem um software livre &agrave; disposi&ccedil;&atilde;o e fica quebrando a cabe&ccedil;a em busca de solu&ccedil;&otilde;es de c&oacute;digo que j&aacute; existem e est&atilde;o implementadas nele? Vasculhe todo o c&oacute;digo fonte (veja alguns recursos que ajudam no artigo sobre <a
href="/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/">ferramentas e recursos para desenvolvimento web</a>) e procure por aquilo que vai lhe ser &uacute;til!</p><p>N&atilde;o seja t&iacute;mido!  ;-)</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/" title="15 fantásticos comandos SQL para WordPress">15 fantásticos comandos SQL para WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/" title="Estratégia de Conteúdo ou Content Strategy">Estratégia de Conteúdo ou Content Strategy</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/" title="URLs longas apresentadas corretamente com CSS">URLs longas apresentadas corretamente com CSS</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/" title="Melhorando a interação em formulários de busca">Melhorando a interação em formulários de busca</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/z3nVNW5YYsJKUi30kE7Culnd-zU/0/da"><img src="http://feedads.g.doubleclick.net/~a/z3nVNW5YYsJKUi30kE7Culnd-zU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/z3nVNW5YYsJKUi30kE7Culnd-zU/1/da"><img src="http://feedads.g.doubleclick.net/~a/z3nVNW5YYsJKUi30kE7Culnd-zU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Qh9rrb5t0V8:Rqpye0kVQMM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Qh9rrb5t0V8:Rqpye0kVQMM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Qh9rrb5t0V8:Rqpye0kVQMM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Qh9rrb5t0V8:Rqpye0kVQMM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=Qh9rrb5t0V8:Rqpye0kVQMM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=Qh9rrb5t0V8:Rqpye0kVQMM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/Qh9rrb5t0V8" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/feed/</wfw:commentRss> <slash:comments>18</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/</feedburner:origLink></item> <item><title>Estratégia Web de Pirâmide: guia para uma estratégia de web equilibrada</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/913y_4xew4M/</link> <comments>http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/#comments</comments> <pubDate>Tue, 29 Jun 2010 20:16:59 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[mídia social]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[Usabilidade]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Arquitetura da Informação]]></category> <category><![CDATA[Planejamento]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=649</guid> <description><![CDATA[Aprenda uma estrat&eacute;gia de web equilibrada que contempla conte&uacute;do, usabilidade, seo, m&iacute;dia social e PPC]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-650" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/estrategia-web-da-piramide-guia-estrategia-web-equilibrada.jpg" alt="Estrat&eacute;gia web de pir&acirc;mide: guia para uma estrat&eacute;gia web equilibrada" width="250" height="250" /></p><p>Empresas de todos os portes est&atilde;o investindo pesado em <strong>m&iacute;dia social</strong> sem se esfor&ccedil;ar igualmente para forjar uma base s&oacute;lida, constru&iacute;da sobre uma experi&ecirc;ncia do usu&aacute;rio amig&aacute;vel (<strong>usabilidade</strong>) e conte&uacute;do de qualidade.</p><p>Para entregar um site que oferece aos usu&aacute;rios a experi&ecirc;ncia que eles est&atilde;o procurando, &eacute; preciso que este seja definido sobre uma base s&oacute;lida de conte&uacute;dos, navega&ccedil;&atilde;o eficiente e boas pr&aacute;ticas de SEO. Com isto em mente, vamos ao que Jason Schubring chama de &#8220;A Estrat&eacute;gia Web de Pir&acirc;mide&#8221;.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://sixrevisions.com/content-strategy/the-web-strategy-pyramid-a-well-balanced-web-strategy/">The Web Strategy Pyramid: A Well-balanced Web Strategy</a>&#8220;, do <em>blog</em> <a
href="http://sixrevisions.com/">Six Revisions</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><h2>Conte&uacute;do</h2><p>&#8220;O conte&uacute;do &eacute; rei&#8221; &eacute; um clich&eacute;, mas &eacute; assim por uma raz&atilde;o: &eacute; verdade. Um site pode ter os melhores an&uacute;ncios, milhares de seguidores do Twitter  e um web design espetacular, mas nenhuma destes mant&eacute;m usu&aacute;rios, a n&atilde;o ser que se tenha o <strong>conte&uacute;do que eles est&atilde;o procurando</strong>. Um conte&uacute;do fant&aacute;stico &eacute; o combust&iacute;vel que impulsiona todos os outros esfor&ccedil;os. Afinal, por que algu&eacute;m iria fazer um tweet sobre o seu site ou adicionar em alguma rede social se n&atilde;o h&aacute; nada que vale a pena compartilhar?</p><p>A melhor maneira para ter um bom come&ccedil;o (e se manter com n&iacute;veis positivos de crescimento e retorno) &eacute; atrav&eacute;s do <strong>conte&uacute;do</strong>. Se ele &eacute; &uacute;nico, cativante, interessante e direcionado ao p&uacute;blico-alvo, ent&atilde;o uma base s&oacute;lida est&aacute; constru&iacute;da.</p><p>Alguns pontos a considerar s&atilde;o:</p><ul><li>O conte&uacute;do do site &eacute; baseado em termos que os usu&aacute;rios entendem ou h&aacute; o uso de jarg&otilde;es?</li><li>O conte&uacute;do &eacute; intencionalmente escrito para a web ou &eacute; reaproveitado a partir de material offline?</li><li>Se voc&ecirc; &eacute; um blogueiro, seu conte&uacute;do tem uma perspectiva e ponto de vista &uacute;nicos, dignos de discuss&atilde;o e retweets?</li></ul><p>Conte&uacute;do para web &eacute; um assunto complexo, repleto de nuances, detalhes e pormenores. Essas s&atilde;o somente perguntas-base. Estude mais!</p><h2>Usabilidade / Design</h2><p>Se os visitantes n&atilde;o conseguem encontrar o que procuram, n&atilde;o importa que voc&ecirc; tenha enchido o site com um conte&uacute;do fant&aacute;stico. Navega&ccedil;&atilde;o complexa, m&aacute; utiliza&ccedil;&atilde;o de espa&ccedil;os em branco, gr&aacute;ficos ou anima&ccedil;&otilde;es que distraem e uma grande variedade de outros trope&ccedil;os de UX podem acabar com a possibilidade de transformar uma <strong>visita em venda</strong> ou um <strong>seguidor em um grande f&atilde;</strong>!</p><p>N&atilde;o h&aacute; muito tempo, realizar um teste de usabilidade em um site ou aplicativo complexo podia custar milhares de &#8220;dinheiros&#8221; (d&oacute;lares, euros, reais ou o que for). Atualmente existem muitos <a
href="http://desenvolvimentoparaweb.com/usabilidade/recursos-usabilidade/">recursos gr&aacute;tis de usabilidade</a> para recolher <em>feedback</em> dos usu&aacute;rios.</p><p>Tamb&eacute;m &eacute; poss&iacute;vel discutir quest&otilde;es simples com colegas de trabalho e outras pessoas atrav&eacute;s de <a
href="http://desenvolvimentoparaweb.com/usabilidade/ferramentas-criacao-wireframes/">wireframes</a> ou algum outro tipo de &#8220;rascunho&#8221;. As tarefas mais comuns s&atilde;o realizadas com facilidade? A navega&ccedil;&atilde;o &eacute; facilmente compreendida? Essa e outras quest&otilde;es fundamentais s&atilde;o de vital import&acirc;ncia: fazer testes &#8220;b&aacute;sicos&#8221; &eacute; melhor que fazer teste nenhum!</p><h2>SEO</h2><p>Alguns podem estar surpresos com o fato de que SEO n&atilde;o &eacute; um dos itens na base da pir&acirc;mide. &#8220;Se n&atilde;o &eacute; poss&iacute;vel encontrar quem se importa?&#8221;. Nesse ponto, cabe uma explica&ccedil;&atilde;o: se o seu conte&uacute;do est&aacute; <strong>bem escrito</strong> e <strong>focado nas necessidades dos visitante</strong>s, ent&atilde;o j&aacute; est&atilde;o sendo feitos grandes progressos no caminho para um SEO eficaz!</p><p>Demasiadas vezes as pessoas tentam encontrar o &#8220;segredo&#8221; para uma boa classifica&ccedil;&atilde;o nos mecanismos de busca, mas nunca t&ecirc;m tempo para avaliar o conte&uacute;do em seu site. Um dos verdadeiros segredos de SEO est&aacute; em construir uma base s&oacute;lida de conte&uacute;dos relevantes. Novamente, aqui est&atilde;o alguns pontos a considerar:</p><ul><li>H&aacute; no conte&uacute;do as palavras-chave que seus usu&aacute;rios est&atilde;o procurando?</li><li>Seus t&iacute;tulos (tags h1, h2, h3 etc) incluem palavras-chave?</li><li>O t&iacute;tulo das p&aacute;ginas conte&ecirc;m palavras-chave e informam o tema do conte&uacute;do?</li></ul><p>De novo, estas s&atilde;o apenas algumas quest&otilde;es b&aacute;sicas. Mais informa&ccedil;&otilde;es podem ser encontradas no artigo &#8220;<a
href="http://desenvolvimentoparaweb.com/seo/as-melhores-praticas-de-seo-para-melhorar-posicionamento-mecanismos-de-busca/">As melhores pr&aacute;ticas de SEO para seu site ou blog melhorar o posicionamento nos mecanismos de busca</a>&#8221; e na categoria <a
href="http://desenvolvimentoparaweb.com/categoria/seo/">SEO</a>.</p><h2>M&iacute;dia Social</h2><p>Para o prosseguimento da leitura, assume-se que voc&ecirc; tenha tido, pelo menos, um contato superficial de sites como o Facebook, Twitter e MySpace e, provavelmente/de prefer&ecirc;ncia, tenha alguma experi&ecirc;ncia usando ferramentas para otimizar as atividades de m&iacute;dia social (Radian6, ScoutLabs, HootSuite, etc).</p><p>Com este pressuposto em mente, o ponto mais importante &eacute;: <strong>tenha uma estrat&eacute;gia de longo prazo para m&iacute;dias sociais!</strong></p><p>N&atilde;o s&atilde;o raras as empresas e/ou pessoas que iniciam participa&ccedil;&atilde;o em redes sociais sem ter um p&uacute;blico-alvo, um prop&oacute;sito claro e objetivos bem definidos.Voc&ecirc; tem uma estrat&eacute;gia bem definida para m&iacute;dias sociais? Aqui est&atilde;o alguns itens para ajud&aacute;-lo a determinar se esse &eacute; o caso:</p><ul><li>Se voc&ecirc; est&aacute; num ambiente corporativo e algu&eacute;m &eacute; designado para trabalhar em <em>social media</em>, esse ser&aacute; um trabalho focado, pr&oacute;prio ou &eacute; algo que s&oacute; ser&aacute; feito quando houver tempo livre?</li><li>Sua empresa usa uma ag&ecirc;ncia de publicidade para m&iacute;dias sociais? Usar esse tipos de empresas normalmente &eacute; grande para o lan&ccedil;amento inicial e campanhas em curso, mas o que acontece em dois anos? E em quatro anos?</li><li>Quem responde &agrave;s preocupa&ccedil;&otilde;es dos seus clientes no Twitter, Facebook e f&oacute;runs? Ser&aacute; que a escolha resiste ao teste do tempo e as expectativas dos clientes? Mais importante ainda: &eacute; rent&aacute;vel?</li></ul><h2>Pay-per-click (PPC)</h2><p>Agora que uma estrat&eacute;gia de web est&aacute; feita baseada em um grande conte&uacute;do, uma interface amig&aacute;vel com uma excelente usabilidade, SEO e social media, &eacute; o momento do PPC.</p><p>Dependendo das necessidades de neg&oacute;cios, PPC pode desempenhar um papel<strong> bastante importante</strong>. Na maioria dos casos t&iacute;picos, no entanto, voc&ecirc; estar&aacute; melhor servido por cuidar de todos os outros itens essenciais antes de usar o PPC. Olhe dessa maneira: por que gastar dinheiro para atrair visitantes para um site que n&atilde;o est&aacute; bem posicionado para fazer o m&aacute;ximo de cada uma dessas visitas?</p><h2>Considera&ccedil;&otilde;es finais</h2><p>Ser&aacute; que essa &#8220;<strong>Estrat&eacute;gia Web de Pir&acirc;mide</strong>&#8221; est&aacute;, potencialmente, baseada em necessidades espec&iacute;ficas de web e para seu neg&oacute;cio? Certamente que sim.</p><p>Se voc&ecirc; &eacute; uma pequena ou m&eacute;dia empresa e venda um produto para um pequeno nicho de mercado, SEO e PPC podem ser mais importantes; se voc&ecirc; &eacute; um blogueiro, a m&iacute;dia social &eacute; uma parte vital para sua atua&ccedil;&atilde;o. O ponto central permanece o mesmo, independentemente de seus objetivos: cuide do <strong>b&aacute;sico</strong> e s&oacute; siga adiante quando o b&aacute;sico estiver aceit&aacute;vel.</p><p>Seus usu&aacute;rios (e sua conta banc&aacute;ria) agradecem!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/como-otimizar-imagens-web-internet/" title="Como otimizar imagens para web: guia de otimização de imagens">Como otimizar imagens para web: guia de otimização de imagens</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/8-caracteristicas-de-user-interfaces-ui-de-sucesso/" title="8 características de User Interfaces (UI) de sucesso">8 características de User Interfaces (UI) de sucesso</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/meta-tags/" title="Meta tags">Meta tags</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/compatibilidade-css-e-o-internet-explorer-tabela-comparativa-de-compatibilidade-cssie/" title="Compatibilidade CSS e o Internet Explorer: tabela comparativa de compatibilidade CSS/IE">Compatibilidade CSS e o Internet Explorer: tabela comparativa de compatibilidade CSS/IE</a></li><li><a
href="http://desenvolvimentoparaweb.com/blogs/maneiras-praticas-para-melhorar-a-visitacao-de-seu-blog-e-fidelizar-seus-leitores/" title="Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores">Maneiras práticas para melhorar a visitação de seu blog e fidelizar seus leitores</a></li><li><a
href="http://desenvolvimentoparaweb.com/blogs/desenvolva-sua-personalidade-blogueira-dicas-para-estimular-a-participacao-dos-leitores-de-seu-blog/" title="Desenvolva sua personalidade blogueira: dicas para estimular a participação dos leitores de seu blog">Desenvolva sua personalidade blogueira: dicas para estimular a participação dos leitores de seu blog</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-6-principio-da-experiencia-passada/" title="Gestalt aplicado ao design web (parte 6): princípio da experiência passada">Gestalt aplicado ao design web (parte 6): princípio da experiência passada</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/gestalt-aplicado-ao-design-web-parte-5-exemplos-web-do-principio-do-alinhamento/" title="Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento">Gestalt aplicado ao design web (parte 5): exemplos web do princípio do alinhamento</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Q5NH_ED__ANmKfuYywadxE6nzX8/0/da"><img src="http://feedads.g.doubleclick.net/~a/Q5NH_ED__ANmKfuYywadxE6nzX8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Q5NH_ED__ANmKfuYywadxE6nzX8/1/da"><img src="http://feedads.g.doubleclick.net/~a/Q5NH_ED__ANmKfuYywadxE6nzX8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=913y_4xew4M:KQnl7LaDt6k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=913y_4xew4M:KQnl7LaDt6k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=913y_4xew4M:KQnl7LaDt6k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=913y_4xew4M:KQnl7LaDt6k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=913y_4xew4M:KQnl7LaDt6k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=913y_4xew4M:KQnl7LaDt6k:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/913y_4xew4M" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/feed/</wfw:commentRss> <slash:comments>5</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/usabilidade/estrategia-web-da-piramide-guia-estrategia-web-equilibrada/</feedburner:origLink></item> <item><title>8 maneiras de melhorar a performance de um site</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/PTE_05_tppc/</link> <comments>http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/#comments</comments> <pubDate>Mon, 14 Jun 2010 13:00:44 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[miscelânea]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Desempenho]]></category> <category><![CDATA[Performance]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=647</guid> <description><![CDATA[Confira dicas de como melhorar a performance e desempenho de um site atrav&eacute;s de t&eacute;cnicas comprovadas]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-648" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/melhorar-performance-desempenho-site.jpg" alt="Melhorar performance e desempenho de um site" width="250" height="250" /></p><p>Existem, literalmente, centenas de maneiras para <strong>aumentar a performance de um site</strong>. Os m&eacute;todos variam e alguns, obviamente, s&atilde;o mais eficientes que outros. As tr&ecirc;s &aacute;reas principais que voc&ecirc; pode trabalhar s&atilde;o: hardware (servidor web), otimiza&ccedil;&atilde;o de scripts server-side (PHP, Python, Java, etc) e performance do front-end. Este artigo se concentra no terceiro ponto: <strong>performance do front-end</strong>.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://sixrevisions.com/web-development/10-ways-to-improve-your-web-page-performance/">10 Ways to Improve Your Web Page Performance</a>&#8220;, do <em>blog</em> <a
href="http://sixrevisions.com/">Six Revisions</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><h2>Inspecione suas p&aacute;ginas para encontrar os culpados</h2><p>&Eacute; muito &uacute;til inspecionar suas p&aacute;gina web para encontrar componentes desnecess&aacute;rios ou componentes que podem ser otimizados. Esse tipo de inspe&ccedil;&atilde;o geralmente envolve uma ferramenta como o <a
href="http://getfirebug.com/">Firebug</a> (mas existem <a
href="http://sixrevisions.com/tools/faster_web_page/">outras ferramentas</a>) para  determinar quais os componentes (imagens, arquivos CSS, documentos  HTML, arquivos javascript, etc) est&atilde;o sendo solicitados pelo usu&aacute;rio, quanto  tempo levam para carregar e o qu&atilde;o grandes s&atilde;o (tamanho em KB). Regra  geral, deve-se mant&ecirc;-los t&atilde;o pequenos  quanto poss&iacute;vel (at&eacute; <a
href="http://developer.yahoo.com/performance/rules.html#under25">25KB</a> &eacute; uma boa meta).</p><p>A aba &#8220;Rede&#8221; do Firebug pode ajud&aacute;-lo a ca&ccedil;ar os arquivos que &#8220;atolam&#8221; o site. No exemplo acima, tem-se uma vis&atilde;o geral de todos os componentes da p&aacute;gina, incluindo: o que &eacute;, onde est&aacute;, o qu&atilde;o grande &eacute; e quanto tempo demorou para carregar.</p><h2>Salve as imagens no formato correto</h2><p>Se o site possui v&aacute;rias imagens, &eacute; essencial aprender sobre os diferentes formatos e qual &eacute; o ideal para cada imagem. H&aacute; tr&ecirc;s formatos comuns para imagens na web: JPG, GIF e PNG. Em geral, deve-se usar JPG para fotos realistas com grada&ccedil;&otilde;es suaves e tons de cores (degrad&ecirc;s) e GIF ou PNG para imagens com cores s&oacute;lidas (tais como gr&aacute;ficos e logotipos).</p><p>Para mais informa&ccedil;&otilde;es a esse respeito, leia o artigo sobre <a
href="http://desenvolvimentoparaweb.com/miscelanea/como-otimizar-imagens-web-internet/">como otimizar imagens para web – guia de otimiza&ccedil;&atilde;o de imagens</a>.</p><h2>Minimize seu CSS e javascript</h2><p>Minimiza&ccedil;&atilde;o &eacute; o processo de remo&ccedil;&atilde;o de caracteres desnecess&aacute;rios (tais como tabula&ccedil;&otilde;es, espa&ccedil;os coment&aacute;rios do c&oacute;digo fonte, etc) a partir do c&oacute;digo fonte para<strong> reduzir o tamanho do arquivo</strong>. Por exemplo:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.classe</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ffffff</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">9px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div><p>Pode ser &#8220;convertido&#8221; para:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.classe</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>line-<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>font-<span style="color: #000000; font-weight: bold;">size</span><span style="color: #00AA00;">:</span><span style="color: #933;">9px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div><p>E n&atilde;o se preocupe: n&atilde;o &eacute; preciso reformatar o c&oacute;digo manualmente! H&aacute; uma infinidade de ferramentas gratuitas &agrave; disposi&ccedil;&atilde;o para minimizar arquivos CSS e javascript. Para CSS, &eacute; poss&iacute;vel encontrar v&aacute;rias ferramentas no artigo sobre <a
href="http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/">ferramentas e recursos para desenvolvimento web</a>; para javascript, algumas op&ccedil;&otilde;es s&atilde;o <a
href="http://dean.edwards.name/packer/">/packer/</a>, <a
title="JSMIN, The JavaScript Minifier" href="http://www.crockford.com/javascript/jsmin.html">JSMIN</a>, <a
href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> e <a
href="http://jcay.com/id-190119110113039.html">JavaScript Code  Improver</a>. Lembre-se: uma boa <em>minify tool</em> &eacute; aquela que permite reverter o processo de minimiza&ccedil;&atilde;o.</p><h2>Combine arquivos CSS e javascript para fazer menos requisi&ccedil;&otilde;es HTTP</h2><p>Para cada componente necess&aacute;rio para renderizar uma p&aacute;gina web, &eacute; criada uma solicita&ccedil;&atilde;o HTTP no servidor. Ent&atilde;o, se voc&ecirc; tiver cinco arquivos CSS para uma p&aacute;gina, ser&atilde;o necess&aacute;rios, pelo menos, 5 requisi&ccedil;&otilde;es HTTP separadas. Ao combinar arquivos, &eacute; poss&iacute;vel reduzir a sobrecarga de solicita&ccedil;&otilde;es HTTP necess&aacute;rias para gerar uma p&aacute;gina web.</p><p>Confira o<strong> recomendad&iacute;ssimo</strong> artigo de Niels Leenheer sobre como combinar arquivos CSS e JS usando PHP (pode ser adaptado para outras linguagens). <a
href="http://www.sitepoint.com/">SitePoint</a> discute um <a
href="http://www.sitepoint.com/blogs/2007/04/10/faster-page-loads-bundle-your-css-and-javascript/">m&eacute;todo similar para &#8220;empacotar&#8221; CSS e javascript</a> &#8211; eles conseguiram reduzir o tempo de resposta em 76% em rela&ccedil;&atilde;o ao tempo original!</p><h2>Use sprites CSS</h2><p>CSS Sprite &eacute; uma combina&ccedil;&atilde;o de imagens menores em uma imagem grande (j&aacute; comentado no artigo &#8220;<a
href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/">Otimiza&ccedil;&atilde;o WordPress: aumente a performance e desempenho de seu blog/site</a>&#8220;). Para mostrar a imagem correta, &eacute; preciso ajustar os valores da propriedade CSS background-position. Combinando v&aacute;rias imagens desta forma, &eacute; poss&iacute;vel reduzir os pedidos HTTP (e reduzir requisi&ccedil;&otilde;es HTTP &eacute; um important&iacute;ssimo passo rumo &agrave; <strong>melhora de performance e desempenho de um site</strong>).</p><p>&Eacute; poss&iacute;vel fazer Sprites CSS manualmente, mas h&aacute; uma ferramenta online chamada <a
href="http://www.connectedinternet.co.uk/2008/01/15/tweaking-your-sites-performance-to-the-max/">CSS Sprite Generator</a> que d&aacute; a op&ccedil;&atilde;o de fazer upload de imagens para serem combinados em um &uacute;nico sprite, gerando o c&oacute;digo CSS (os valores de background-position) para renderizar as imagens.</p><h2>Use compress&atilde;o server side para diminuir o tamanho dos arquivos</h2><p>Fazendo uma analogia, compactar objetos da p&aacute;gina via <em>server side</em> &eacute; semelhante a zipar um arquivo grande para enviar por e-mail: voc&ecirc; (servidor web) zipa um retrato grande da fam&iacute;lia (o componente da p&aacute;gina) e envia por e-mail para seu amigo (o browser) que, por sua vez, descompacta o arquivo zip para ver a imagem. Os m&eacute;todos de compress&atilde;o mais comuns s&atilde;o <strong>Deflate</strong> e <strong>gzip</strong>.</p><p>Se o site est&aacute; sendo executado em servidor pr&oacute;prio dedicado ou h&aacute; um servi&ccedil;o de <a
href="http://pt.wikipedia.org/wiki/VPS">VPS</a> e a compacta&ccedil;&atilde;o n&atilde;o est&aacute; ativada, confira este guia sobre <a
href="http://schroepl.net/projekte/mod_gzip/install.htm">como instalar mod_gzip no Apache</a>. Se n&atilde;o for o caso, entre em contato com seu servidor de hospedagem e pe&ccedil;a instru&ccedil;&otilde;es sobre como ativar a compacta&ccedil;&atilde;o server side.</p><h2>Evite CSS e javascript incorporado e inline</h2><p>Por padr&atilde;o, CSS externo e arquivos javascript s&atilde;o armazenados em <em>cache</em> pelo browser do usu&aacute;rio. Se esse usu&aacute;rio sai do site, ainda sim ele possui o javascript e CSS em sua m&aacute;quina; ent&atilde;o, da pr&oacute;xima vez em que retornar ao site, n&atilde;o haver&aacute; necessidade de baixar esses arquivos novamente. Se h&aacute; um monte de CSS e JavaScript no documento HTML (<em>inline</em> ou <em>incorporado</em>), n&atilde;o &eacute; poss&iacute;vel se valer do benef&iacute;cio de <em>cache</em> do navegador. Portanto, sempre que poss&iacute;vel, d&ecirc; prefer&ecirc;ncia ao uso de folhas de estilo e scripts externos.</p><h2>Utilize servi&ccedil;os terceirizados para seus componentes e recursos</h2><p>Aliviar um pouco o site de componentes e recursos, utilizando servi&ccedil;os de terceiros, reduz enormemente o trabalho do seu servidor web. O princ&iacute;pio &eacute; que a &#8220;carga total&#8221; &eacute; compartilhada com outro(s) servidor(es).</p><p>&Eacute; poss&iacute;vel usar o <a
href="http://www.feedburner.com/fb/a/home">Feedburner</a> para gerenciar feeds, <a
href="http://flickr.com/">Flickr</a> para as imagens (apesar de algumas <a
href="http://www.blogherald.com/2008/02/04/the-dangers-of-offloading-images/">implica&ccedil;&otilde;es de uso</a>), <a
href="http://code.google.com/apis/ajaxlibs/">Google AJAX Libraries API</a> para servir estruturas javascript populares (como Mootools, jQuery e Dojo), dentre outros.</p><p>E voc&ecirc;, tem alguma dica de <strong>como melhorar a performance de um site</strong>?</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/wordpress/otimizacao-wordpress-performance-desempenho-blog-site/" title="Otimização WordPress: aumente a performance e desempenho de seu blog / site">Otimização WordPress: aumente a performance e desempenho de seu blog / site</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/pergunte-se-a-si-mesmo-questoes-para-desenvolver-um-bom-site/" title="Pergunte-se a si mesmo: questões para desenvolver um bom site">Pergunte-se a si mesmo: questões para desenvolver um bom site</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/" title="10 dicas que desenvolvedores web iniciantes devem saber">10 dicas que desenvolvedores web iniciantes devem saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Bw0Mh5y6joiQpEJ2FRI0OxMFqFs/0/da"><img src="http://feedads.g.doubleclick.net/~a/Bw0Mh5y6joiQpEJ2FRI0OxMFqFs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Bw0Mh5y6joiQpEJ2FRI0OxMFqFs/1/da"><img src="http://feedads.g.doubleclick.net/~a/Bw0Mh5y6joiQpEJ2FRI0OxMFqFs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PTE_05_tppc:-YQeZNYOgLY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PTE_05_tppc:-YQeZNYOgLY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PTE_05_tppc:-YQeZNYOgLY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PTE_05_tppc:-YQeZNYOgLY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=PTE_05_tppc:-YQeZNYOgLY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=PTE_05_tppc:-YQeZNYOgLY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/PTE_05_tppc" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/miscelanea/8-maneiras-de-melhorar-a-performance-de-um-site/</feedburner:origLink></item> <item><title>Gradiente CSS cross browser: degradês em CSS sem usar imagens</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/uOo-x23fVFA/</link> <comments>http://desenvolvimentoparaweb.com/css/gradiente-css-cross-browser-degrades-css-sem-usar-imagens/#comments</comments> <pubDate>Tue, 08 Jun 2010 18:14:16 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[css]]></category> <category><![CDATA[Interface]]></category> <category><![CDATA[Web Design]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=641</guid> <description><![CDATA[Aprenda a fazer degrad&ecirc;s com CSS (cross browser) sem usar imagens para e melhorar seu web design!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-646" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/gradiente-css-cross-browser-degrades-css-sem-usar-imagens.jpg" alt="Gradiente CSS cross-browser: degrades css sem uso de imagens" width="150" height="150" /></p><div
class="atencao"> CSS3 ainda n&atilde;o &eacute; um padr&atilde;o W3C oficial e, at&eacute; que chegue a este status, muita coisa muda. Para o caso de degrad&ecirc;s com CSS puro, confira o artigo <a
href="http://www.broken-links.com/2012/01/11/the-new-and-hopefully-final-linear-gradient-syntax/">The new (and hopefully final) linear gradient syntax</a>. Em fun&ccedil;&atilde;o disto, este artigo est&aacute; oficialmente <strong>desatualizado</strong>.</div><p>O recurso de <strong>gradiente (degrad&ecirc;) CSS</strong> foi introduzido pelo Webkit h&aacute; cerca de 2 anos, mas raramente era utilizado devido &agrave; incompatibilidade com a maioria dos browsers. Mas agora, com o Firefox 3.6+, que suporta gradientes, &eacute; poss&iacute;vel criar degrad&ecirc;s sem usar imagens! E o c&oacute;digo CSS para gradiente funciona nos principais navegadores: IE, Firefox 3.6+, Safari e Chrome.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/">Cross-Browser CSS Gradient</a>&#8220;, do <em>blog</em> <a
href="http://www.webdesignerwall.com/">WebDesignerWall</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><h2>Gradiente CSS para browsers Webkit</h2><p>A seguinte linha de c&oacute;digo &eacute; para navegadores WebKit, como Safari, Chrome, etc. Serve para exibir um gradiente linear de cima (#CCC) para baixo (#000).</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#CCC</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div><p><img
class="aligncenter size-full wp-image-642" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/gradiente-css-cross-browser-webkit.gif" alt="Degrad&ecirc; CC cross browser em webkit" width="480" height="150" /></p><h2>Degrad&ecirc; CSS para Firefox 3.6+</h2><p>Para Firefox 3.6+, usa-se -moz-linear-gradient:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#CCC</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div><p><img
class="aligncenter size-full wp-image-643" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/degrade-css-cross-browser-firefox.gif" alt="Degrade CSS cross browser: Firefox 3.6+" width="480" height="150" /></p><h2>CSS Gradient em Internet Explorer</h2><p>No IE, &eacute; preciso recorrer a um filtro:</p><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;">filter<span style="color: #00AA00;">:</span> progid<span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.gradient<span style="color: #00AA00;">&#40;</span>startColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#CCCCCC'</span><span style="color: #00AA00;">,</span> endColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#000000'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div><h2><img
class="aligncenter size-full wp-image-644" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/css-gradient-cross-browser-ie-internet-explorer.gif" alt="CSS Gradient cross browser: Internet Explorer" width="480" height="150" />Degrad&ecirc; com CSS em todos os navegadores (cross-browser)</h2><div
class="wp_syntax"><div
class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#999</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* para browsers sem suporte a CSS 3 */</span>
&nbsp;
filter<span style="color: #00AA00;">:</span> progid<span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.gradient<span style="color: #00AA00;">&#40;</span>startColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#cccccc'</span><span style="color: #00AA00;">,</span> endColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#000000'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span><span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* webkit browsers */</span>
<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span>  <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">,</span>  <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Firefox 3.6+ */</span></pre></div></div><div
id="attachment_645" class="wp-caption aligncenter" style="width: 490px"><a
href="http://www.webdesignerwall.com/demo/gradient-box.html" target="_blank"><img
class="size-full wp-image-645" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/06/css-gradient-crossbrowser-box.jpg" alt="Exemplo de CSS degrad&ecirc; (gradiente) crossbrowser" width="480" height="258" /></a><p
class="wp-caption-text">Clique para ver o exemplo direto no navegador</p></div><p
style="text-align: center;"><p><strong>&lt;update&gt;</strong><br
/> Existe uma &oacute;tima ferramenta para gerar degrad&ecirc;s com CSS: <a
href="http://www.colorzilla.com/gradient-editor/">Ultimate CSS Gradient Generator</a>.<br
/> <strong>&lt;/update&gt;</strong></p><h2>Limita&ccedil;&otilde;es do Internet Explorer</h2><p>O filtro de gradiente do Internet Explorer n&atilde;o suporta color-stop, gradient angle e radial gradient. Isso significa que s&oacute; &eacute; poss&iacute;vel especificar degrad&ecirc;s lineares na horizontal ou vertical com duas cores: StartColorStr e EndColorStr.</p><p><strong>&lt;update&gt;</strong><br
/> O leitor Renatho indicou uma maneira de trabalhar com <a
href="http://www.grifotecnologia.com.br/blog/css/gradientes-no-internet-explorer-9/">gradientes no Internet Explorer 9</a>.<br
/> <strong>&lt;/update&gt;</strong></p><h2>Notas finais sobre degrad&ecirc;s com CSS puro</h2><p>&Eacute; importante ter em mente que nem todos os navegadores suportam gradiente com CSS puro. Por garantia, o ideal &eacute; n&atilde;o <strong>depender</strong> do CSS para fazer degrad&ecirc;s; o ideal &eacute; utilizar o recurso para <strong>melhorar</strong> o web design.</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/css/css-float-consideracoes-dicas-e-macetes-para-bons-layouts-na-web/" title="CSS float: considerações, dicas e macetes para bons layouts na web">CSS float: considerações, dicas e macetes para bons layouts na web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/cores-na-web-guia-completo/" title="Cores na web: guia completo">Cores na web: guia completo</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/rolagem-fundo-transparente-css/" title="Rolagem com fundo transparente com CSS">Rolagem com fundo transparente com CSS</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/7-ferramentas-para-web-designs-melhores/" title="7 ferramentas para web designs melhores">7 ferramentas para web designs melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/nextgen-gallery-com-sexylightbox-sua-galeria-de-imagens-mais-sexy/" title="NextGEN Gallery com SexyLightBox: sua galeria de imagens mais sexy">NextGEN Gallery com SexyLightBox: sua galeria de imagens mais sexy</a></li><li><a
href="http://desenvolvimentoparaweb.com/indicacoes/cushycms-cms-versatil-simples-rapido-facil-e-gratuito/" title="CushyCMS: CMS versátil, simples, rápido, fácil e gratuito">CushyCMS: CMS versátil, simples, rápido, fácil e gratuito</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/icones-de-setinhas-para-download-gratis/" title="Ícones de setinhas para download (grátis)">Ícones de setinhas para download (grátis)</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/componentes-de-um-sistema-de-navegacao/" title="Componentes de um sistema de navegação">Componentes de um sistema de navegação</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/s0wQ7xNONePA7m_quTvQrOpQ2lo/0/da"><img src="http://feedads.g.doubleclick.net/~a/s0wQ7xNONePA7m_quTvQrOpQ2lo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/s0wQ7xNONePA7m_quTvQrOpQ2lo/1/da"><img src="http://feedads.g.doubleclick.net/~a/s0wQ7xNONePA7m_quTvQrOpQ2lo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uOo-x23fVFA:k_JBQVD5rKY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uOo-x23fVFA:k_JBQVD5rKY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uOo-x23fVFA:k_JBQVD5rKY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uOo-x23fVFA:k_JBQVD5rKY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uOo-x23fVFA:k_JBQVD5rKY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uOo-x23fVFA:k_JBQVD5rKY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/uOo-x23fVFA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/css/gradiente-css-cross-browser-degrades-css-sem-usar-imagens/feed/</wfw:commentRss> <slash:comments>16</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/css/gradiente-css-cross-browser-degrades-css-sem-usar-imagens/</feedburner:origLink></item> <item><title>Melhores editores WYSIWYG para seu projeto</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/uRUeBJiEBG8/</link> <comments>http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/#comments</comments> <pubDate>Tue, 01 Jun 2010 13:00:31 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[javascript]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Ferramentas]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=629</guid> <description><![CDATA[Os melhores editores WYSIWYG para seu projeto ir para o pr&oacute;ximo n&iacute;vel!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-640" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/wysiwyg-melhores-editores-melhor-editor-wysiwyg.jpg" alt="WYSIWYG: melhores editores" width="200" height="200" /></p><p>Para quem est&aacute; acostumado a utilizar CMSs em desenvolvimento web, deparar-se com um <strong>editor WYSIWYG</strong> para p&aacute;ginas e artigos &eacute; algo banal. Para desenvolvimento de softwares desde o in&iacute;cio, &eacute; preciso implementar um desses editores e, com tantas op&ccedil;&otilde;es dispon&iacute;veis no mercado, a escolha pode se tornar complicada&#8230; Para isso, confira os 10 melhores editores WYSIWYG para seu pr&oacute;ximo projeto!</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://www.1stwebdesigner.com/resources/10-best-wysiwyg-text-and-html-editors-for-your-next-project/">10 best WYSIWYG Text and HTML Editors for Your Next Project</a>&#8220;, do <em>blog</em> <a
href="http://www.1stwebdesigner.com/resources/10-best-wysiwyg-text-and-html-editors-for-your-next-project/">Graphic and Web Design Blog</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><h2>NicEdit</h2><p><a
href="http://nicedit.com/download.php"><img
class="size-full wp-image-635 aligncenter" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-nicedit.jpg" alt="Melhores editores WYSIWYG: NicEdit" width="503" height="93" /></a></p><p>NicEdit &eacute; uma alternativa para algumas maiores e mais complexos editores WYSIWYG existentes, com seu pequeno tamanho de download. Ele possui muitos dos recursos esperados por esse tipo de editor e se integra facilmente em seu site ou software.</p><h2>TinyMCE</h2><p
style="text-align: center;"><a
href="http://tinymce.moxiecode.com/download.php"><img
class="size-full wp-image-638 aligncenter" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-tinymce.jpg" alt="Melhores editores WYSIWYG: TinyMCE" width="561" height="186" /></a></p><p>TinyMCE &eacute; um editor WYSIWYG  javascript HTML open source. &Eacute; f&aacute;cil de integrar e &eacute; altamente personaliz&aacute;vel com temas e plugins. TinyMCE &eacute; um dos mais completo editores, oferecendo uma experi&ecirc;ncia semelhante a editores instal&aacute;veis, como BrOffice e MS Word.</p><h2>CKEditor</h2><p
style="text-align: center;"><a
href="http://ckeditor.com/download"><img
class="size-full wp-image-630 aligncenter" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-ckeditor.jpg" alt="Melhores editores WYSIWYG: " width="536" height="288" /></a></p><p>CKeditor &eacute; o novo FCKEditor, consagrado editor para os desenvolvedores mais veteranos e l&iacute;der de mercado anteriormente. Baseando-se nisso, o CKEditor promete ser um editor ainda melhor, j&aacute; que fez melhor o que era considerado falho em seu antecessor.</p><h2>YUI Rich Text Editor</h2><p
style="text-align: center;"><a
href="http://developer.yahoo.com/yui/download/"><img
class="aligncenter size-full wp-image-639" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-yui-rich-texteditor.jpg" alt="Melhores editores WYSIWYG: YUI Rich Text Editor" width="485" height="351" /></a></p><p>O YUI Rich Text Editor &eacute; um controle UI do Yahoo que transforma textareas em <strong>editores WYSIWYG completos</strong>. Ele vem em v&aacute;rias vers&otilde;es diferentes, com diferentes caracter&iacute;sticas e complexidade, mas ainda consegue atingir uma grande experi&ecirc;ncia do usu&aacute;rio sem uma infinidade de bot&otilde;es se aglomerando na interface.</p><h2>MarkItUp!</h2><p
style="text-align: center;"><a
href="http://markitup.jaysalvat.com/downloads/"><img
class="aligncenter size-full wp-image-633" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-markitup.jpg" alt="Melhores editores WYSIWYG: MarkItUp!" width="563" height="297" /></a></p><p>Markitup &eacute; um plugin para jQuery que permite que voc&ecirc; transforme textareas em editores de marca&ccedil;&atilde;o com qualquer marcadores que voc&ecirc; quiser: HTML, Sintaxe Wiki e BBcode s&atilde;o apenas algumas que s&atilde;o suportadas. MarkItUp! n&atilde;o &eacute; um editor WYSIWYG, propriamente dito, mas oferece todas as caracter&iacute;sticas b&aacute;sicas esperadas de um.</p><h2>FreeTextBox</h2><p
style="text-align: center;"><a
href="http://freetextbox.com/download/"><img
class="aligncenter size-full wp-image-631" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-free-text-box.jpg" alt="Melhores editores WYSIWYG: FreeTextBox" width="549" height="217" /></a></p><p>FreeTextBox &eacute; um editor HTML especificamente para ASP.NET. A apar&ecirc;ncia do editor &eacute; bastante parecida com a do MS Word. Apesar de a vers&atilde;o gratuita n&atilde;o ter uma s&eacute;rie de features, ela possui mais do que o suficiente para permitir uma edi&ccedil;&atilde;o WYSIWYG de qualidade.</p><h2>MooEditable</h2><p><a
href="http://cheeaun.github.com/mooeditable/"><img
class="aligncenter size-full wp-image-634" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-mooeditable.jpg" alt="Melhores editores WYSIWYG: MooEditable" width="474" height="164" /></a></p><p>Editores WYSIWYG tornaram-se populares devido aos v&aacute;rios plugins para  jQuery existentes, mas esses editores n&atilde;o s&atilde;o t&atilde;o comuns para Mootools. MooEditable, no entanto, preenche essa lacuna, fornecendo uma simples, mas eficaz, experi&ecirc;ncia do usu&aacute;rio, baseada em uma biblioteca de javascript bem escrita. Se voc&ecirc; usa Mootools, ficar&aacute; feliz em usar o MooEditable.</p><h2>OpenWysiwyg﻿</h2><p><a
href="http://www.openwebware.com/download.shtml"><img
class="aligncenter size-full wp-image-636" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-openwysiwyg.gif" alt="Melhores editores WYSIWYG: OpenWysiwig" width="450" height="220" /></a></p><p>OpenWysiwyg &eacute; um editor WYSIWYG cross browser com quase todos os recursos de edi&ccedil;&atilde;o que voc&ecirc; pode precisar. Ele apresenta uma interface elegante, incluindo dropdowns e bot&otilde;es. Um de seus pontos fortes &eacute; sua capacidade de lidar bem com tabelas, com bordas e cores diferentes. No entanto, o Google Chrome ainda n&atilde;o &eacute; suportado&#8230;</p><h2>Spaw Editor</h2><p><a
href="http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_download"><img
class="aligncenter size-full wp-image-637" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-spaweditor.jpg" alt="Melhores editores WYSIWYG: Spaw Editor" width="537" height="232" /></a></p><p>Spaw Editor &eacute; um editor, assim como os outros editores WYSIWYG, que permite desenvolvedores de web substituir uma &aacute;rea de texto padr&atilde;o (textarea) por um editor completo, totalmente personaliz&aacute;vel, multilingue e com suporte a temas.</p><h2>jHtmlArea</h2><p><a
href="http://jhtmlarea.codeplex.com/releases/view/30759"><img
class="aligncenter size-full wp-image-632" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/melhores-editores-wysiwyg-jhtmlarea.jpg" alt="Melhores editores WYSIWYG: jHtmlArea" width="423" height="159" /></a></p><p>jHtmlArea &eacute; outro editor de texto WYSIWYG constru&iacute;do como um plugin para a biblioteca jQuery. Seu objetivo &eacute; ser simples e leve, apenas com as op&ccedil;&otilde;es mais necess&aacute;rias. Permite-se a ser facilmente customiz&aacute;vel atrav&eacute;s de temas, as fun&ccedil;&otilde;es e idiomas.</p><h2>Sugest&otilde;es WYSIWYG?</h2><p>E voc&ecirc;, conhece um <strong>bom editor WYSIWYG</strong> e gostaria de compartilhar? Fa&ccedil;a um coment&aacute;rio com o nome e link do editor WYSIWYG e o artigo ser&aacute; complementado com sua sugest&atilde;o! Participe!</p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/" title="Breadcrumbs: guia completo com exemplos e melhores práticas">Breadcrumbs: guia completo com exemplos e melhores práticas</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/recursos-usabilidade/" title="Recursos de usabilidade grátis">Recursos de usabilidade grátis</a></li><li><a
href="http://desenvolvimentoparaweb.com/midia-social/twitter-ferramentas/" title="Ferramentas para o twitter">Ferramentas para o twitter</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/" title="4 elementos de design para um bom call to action">4 elementos de design para um bom call to action</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/10-dicas-desenvolvedores-web-iniciantes-devem-saber/" title="10 dicas que desenvolvedores web iniciantes devem saber">10 dicas que desenvolvedores web iniciantes devem saber</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/elementos-design-aplicados-web/" title="Elementos de design aplicados à web">Elementos de design aplicados à web</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/10-erros-basicos-de-web-design/" title="10 erros básicos de web design">10 erros básicos de web design</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Al-QvHXklimotx-WIIFzXPE6YaY/0/da"><img src="http://feedads.g.doubleclick.net/~a/Al-QvHXklimotx-WIIFzXPE6YaY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Al-QvHXklimotx-WIIFzXPE6YaY/1/da"><img src="http://feedads.g.doubleclick.net/~a/Al-QvHXklimotx-WIIFzXPE6YaY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uRUeBJiEBG8:TrQhLEsfv2c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uRUeBJiEBG8:TrQhLEsfv2c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uRUeBJiEBG8:TrQhLEsfv2c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uRUeBJiEBG8:TrQhLEsfv2c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=uRUeBJiEBG8:TrQhLEsfv2c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=uRUeBJiEBG8:TrQhLEsfv2c:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/uRUeBJiEBG8" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/feed/</wfw:commentRss> <slash:comments>27</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/</feedburner:origLink></item> <item><title>15 fantásticos comandos SQL para WordPress</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/_DIMgy57zKE/</link> <comments>http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/#comments</comments> <pubDate>Mon, 24 May 2010 13:00:50 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[wordpress]]></category> <category><![CDATA[Blogs]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[Otimização]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=626</guid> <description><![CDATA[Comandos SQL para WordPress para ajudar com quest&otilde;es do dia-a-dia do trabalho com WP]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-628" title="comandos-sql-wordpress" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/comandos-sql-wordpress.gif" alt="Comandos SQL para WordPress" width="150" height="150" /></p><p>Para quem faz uso um pouco mais avan&ccedil;ado do <a
href="http://desenvolvimentoparaweb.com/categoria/wordpress/">WordPress</a>, especialmente quem trabalha desenvolvendo sites com a plataforma, &eacute; bem comum aparecerem situa&ccedil;&otilde;es um tanto complexas. Para estas quest&otilde;es, seguem <strong>13 fant&aacute;sticos comandos SQL para WordPress</strong>!</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
title="Ler o artigo original" href="http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/">13 Useful WordPress SQL Queries You Wish You Knew Earlier</a>&#8220;, do blog <a
href="http://www.onextrapixel.com/">Onextrapixel</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><p>Uma maneira pr&aacute;tica de executar comandos SQL &eacute; atrav&eacute;s do phpMyAdmin. At&eacute; a hospedagem mais b&aacute;sica d&aacute; acesso &agrave; ferramenta de banco de dados, ent&atilde;o n&atilde;o h&aacute; dificuldades nisso. Uma vez no sistema, voc&ecirc; deve selecionar aba &#8220;SQL&#8221; e escrever/colar a instru&ccedil;&atilde;o SQL que deseja executar.</p><p><img
class="aligncenter size-full wp-image-627" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/13-comandos-sql-wordpress-phpmyadmin.jpg" alt="13 fant&aacute;sticos comandos SQL para WordPress: aba SQL do phpMyAdmin" width="580" height="263" /></p><div
class="atencao">Os comandos SQL para WordPress a seguir s&atilde;o para o prefixo padr&atilde;o do WordPress &#8220;wp_&#8221;. Caso o prefixo de suas tabelas seja diferente (o que &eacute; recomendado, por quest&otilde;es de seguran&ccedil;a), fa&ccedil;a os devidos complementos necess&aacute;rios &agrave;s queries.</div><h2>Alterar siteurl e homeurl</h2><p>WordPress armazena o caminho absoluto da URL do site (&#8220;siteurl&#8221;) e URL da home (&#8220;homeurl&#8221;) no banco de dados. Portanto, se voc&ecirc; transferir o seu site WordPress do localhost para o servidor, por exemplo, o site n&atilde;o vai carregar! Isso ocorre porque o caminho absoluto ainda est&aacute; apontando para o seu localhost. Voc&ecirc; vai precisar executar um comando para resolver isso.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_options
<span style="color: #993333; font-weight: bold;">SET</span> option_value <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span>option_value<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> option_name <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'home'</span>
<span style="color: #993333; font-weight: bold;">OR</span> option_name <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'siteurl'</span>;</pre></div></div><h2>Alterar GUID</h2><p>Depois de migrar seu blog a partir de, por exemplo, localhost, para o servidor ou de um outro dom&iacute;nio para um novo dom&iacute;nio, voc&ecirc; ter&aacute; que corrigir as URLs para o campo GUID na tabela wp_posts. Isto &eacute; crucial, porque GUID &eacute; usado para montar o slug de seu post do caminho absoluto do artigo correto.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts
<span style="color: #993333; font-weight: bold;">SET</span> guid <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #66cc66;">&#40;</span>guid<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div><h2>Alterar URL no conte&uacute;do</h2><p>O WordPress utiliza caminhos absolutos no URL ao inv&eacute;s de um caminho relativo quando vai armazen&aacute;-los no banco de dados. Dentro do conte&uacute;do de cada registro de artigo, ele armazena todas as URLs antigas referenciando as fontes antigas. Portanto, voc&ecirc; precisar&aacute; alterar todas essas URLs com o endere&ccedil;o do novo dom&iacute;nio.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts
<span style="color: #993333; font-weight: bold;">SET</span> post_content <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #66cc66;">&#40;</span>post_content<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div><h2>Alterar apenas o caminho das imagens</h2><p>Caso seja preciso alterar o dom&iacute;nio das imagens inseridas nas p&aacute;ginas e artigos, esta solu&ccedil;&atilde;o vai ajudar voc&ecirc; a fazer isso de forma simples.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts
<span style="color: #993333; font-weight: bold;">SET</span> post_content <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #66cc66;">&#40;</span>post_content<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'src=&quot;http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'src=&quot;http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div><p>Tamb&eacute;m &eacute; preciso atualizar o GUID para o tipo &#8220;attachment&#8221; com a seguinte instru&ccedil;&atilde;o SQL:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts
<span style="color: #993333; font-weight: bold;">SET</span> guid <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #66cc66;">&#40;</span>guid<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">WHERE</span> post_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'attachment'</span>;</pre></div></div><h2>Atualizar Post Meta</h2><p>Atualizar Post Meta funciona quase da mesma maneira como atualizar a URL no conte&uacute;do do post. Se voc&ecirc; tiver dados extras para cada post, voc&ecirc; pode usar a seguinte instru&ccedil;&atilde;o para alterar todos eles.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_postmeta
<span style="color: #993333; font-weight: bold;">SET</span> meta_value <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #66cc66;">&#40;</span>meta_value<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.enderecoantigo.com'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'http://www.endereconovo.com'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div><h2>Alterar o nome usu&aacute;rio padr&atilde;o &#8220;admin&#8221;</h2><p>Apesar de que na vers&atilde;o 3 do WordPress o usu&aacute;rio &#8220;admin&#8221; poder&aacute; ser alterado no momento da instala&ccedil;&atilde;o, n&atilde;o custa deixar para a posteridade a dica de como alterar o nome do &#8220;admin&#8221;.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_users
<span style="color: #993333; font-weight: bold;">SET</span> user_login <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'nomequevocequiser'</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> user_login <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Admin'</span>;</pre></div></div><h2>Resetar password</h2><p>J&aacute; quis resetar sua senha no WordPress mas, por algum motivo, n&atilde;o conseguiu usar a se&ccedil;&atilde;o para resetar o password? Eis a solu&ccedil;&atilde;o:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_users
<span style="color: #993333; font-weight: bold;">SET</span> user_pass <span style="color: #66cc66;">=</span> MD5<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'senha'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> user_login <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'login'</span>;</pre></div></div><h2>Transferir artigos de um autor para outro</h2><p>Para transferir os artigos de um autor para outro, voc&ecirc; gasta um tempo enorme se fizer isso manualmente. Com o comando SQL a seguir, &eacute; poss&iacute;vel fazer isso facilmente. Para a dica, &eacute; preciso <a
href="http://www.google.com.br/search?q=obtain+author+id+wordpress">saber o ID dos autores</a>.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts
<span style="color: #993333; font-weight: bold;">SET</span> post_author <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'id_novo_autor'</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> post_author <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'id_autor_antigo'</span>;</pre></div></div><h2>Apagar revis&otilde;es</h2><p>Quando se est&aacute; editando um artigo no WordPress, &eacute; comum c&oacute;pias de seguran&ccedil;a serem feitas para garantir o trabalho feito. S&atilde;o as chamadas &#8220;revis&otilde;es&#8221;. Com o tempo, o n&uacute;mero de registros de revis&otilde;es fica grande e isso pode comprometer a performance do banco de dados. Para apagar todas as revis&otilde;es de artigos, d&ecirc; o seguinte comando SQL:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DELETE</span> a<span style="color: #66cc66;">,</span>b<span style="color: #66cc66;">,</span>c <span style="color: #993333; font-weight: bold;">FROM</span> wp_posts a
<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> wp_term_relationships b <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span>ID <span style="color: #66cc66;">=</span> b<span style="color: #66cc66;">.</span>object_id<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> wp_postmeta c <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">.</span>ID <span style="color: #66cc66;">=</span> c<span style="color: #66cc66;">.</span>post_id<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> a<span style="color: #66cc66;">.</span>post_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'revision'</span></pre></div></div><p>Lembrando que este &eacute; o comando para apagar revis&otilde;es j&aacute; feitas. Caro queira desativar o recurso (ou limitar o n&uacute;mero de revis&otilde;es), saiba como neste artigo sobre <a
href="http://www.centralwp.com.br/limitar-e-desativar-revisoes-de-posts-no-wordpress/">como limitar e desativar revis&otilde;es de posts no WordPress</a>.</p><h2>Apagar post meta</h2><p>Instalar e remover plugins &eacute; algo corriqueiro quando se trabalha com WordPress. Alguns plugins precisam de criar alguns post meta para funcionarem corretamente e, para esses casos, n&atilde;o &eacute; raro o acontecimento de, mesmo depois de o plugin ser desinstalado, algum &#8220;garbage meta&#8221; ficar enchendo o BD desnecessariamente. Uma limpeza em algum valor de post meta, &agrave;s vezes, se faz necess&aacute;ria.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> wp_postmeta
<span style="color: #993333; font-weight: bold;">WHERE</span> meta_key <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'nome-chave-meta'</span>;</pre></div></div><h2>Exportar todos os e-mails de coment&aacute;rios</h2><p>Quanto mais tempo seu blog/site fica no ar, &eacute; prov&aacute;vel que mais coment&aacute;rios receba nos artigos publicados. Se, por algum motivo, for preciso uma listagem com e-mail de todas as pessoas que j&aacute; comentaram at&eacute; ent&atilde;o, basta executar o seguinte comando:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">DISTINCT</span> comment_author_email
<span style="color: #993333; font-weight: bold;">FROM</span> wp_comments;</pre></div></div><p>Uma vez que a listagem esteja conclu&iacute;da, exporte tudo atrav&eacute;s do phpMyAdmin.</p><h2>Apagar todos pingbacks</h2><p>A medida que o site/blog fica no ar &#8211; e se voc&ecirc; tiver bom conte&uacute;do a oferecer &#8211; o n&uacute;mero de pingbacks come&ccedil;a a influenciar a qualidade do banco de dados. Para apagar todos pingbacks, proceda da seguinte maneira:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> wp_comments <span style="color: #993333; font-weight: bold;">WHERE</span> comment_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'pingback'</span>;</pre></div></div><h2>Apagar todos coment&aacute;rios de SPAM</h2><p>Sem maiores explica&ccedil;&otilde;es, eis a maneira de deletar todos os coment&aacute;rios marcados como SPAM:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> wp_comments
<span style="color: #993333; font-weight: bold;">WHERE</span> comment_approved <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'spam'</span>;</pre></div></div><h2>Identificar tags n&atilde;o usadas</h2><p>Num banco de dados WordPress, se voc&ecirc; executar alguma query SQL para apagar posts, as tags relacionadas n&atilde;o ser&atilde;o apagadas e continuar&atilde;o aparecendo na nuvem de sugest&atilde;o de tags e listagem de tags. Para identificar esse tipo de tag, execute a seguinte instru&ccedil;&atilde;o SQL:</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> wp_terms wt
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> wp_term_taxonomy wtt
<span style="color: #993333; font-weight: bold;">ON</span> wt<span style="color: #66cc66;">.</span>term_id<span style="color: #66cc66;">=</span>wtt<span style="color: #66cc66;">.</span>term_id
<span style="color: #993333; font-weight: bold;">WHERE</span> wtt<span style="color: #66cc66;">.</span>taxonomy<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'post_tag'</span>
<span style="color: #993333; font-weight: bold;">AND</span> wtt<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">COUNT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;</pre></div></div><div
class="atencao">Lembre-se: &eacute; sempre bom fazer um backup completo de seu banco de dados antes de executar queries SQL (principalmente se voc&ecirc; n&atilde;o souber muito bem o que est&aacute; fazendo)!</div><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/" title="URLs amigáveis (slug) à WordPress">URLs amigáveis (slug) à WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/truques-de-configuracao-do-wordpress/" title="Truques de configuração do WordPress">Truques de configuração do WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/maneira-simples-de-saber-quem-faz-referencias-a-seu-blog-wordpress/" title="Maneira simples de saber quem faz referências a seu blog WordPress">Maneira simples de saber quem faz referências a seu blog WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/wp-syntax-destacar-codigos-fonte-em-artigos-de-blogs-wordpress/" title="WP-Syntax: destacar códigos fonte em artigos de blogs WordPress">WP-Syntax: destacar códigos fonte em artigos de blogs WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/miscelanea/estrategia-de-conteudo-content-strategy/" title="Estratégia de Conteúdo ou Content Strategy">Estratégia de Conteúdo ou Content Strategy</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/css/urls-longas-apresentadas-corretamente-com-css/" title="URLs longas apresentadas corretamente com CSS">URLs longas apresentadas corretamente com CSS</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/nX-fDmPDub1KNJgz9taUuzRImvI/0/da"><img src="http://feedads.g.doubleclick.net/~a/nX-fDmPDub1KNJgz9taUuzRImvI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nX-fDmPDub1KNJgz9taUuzRImvI/1/da"><img src="http://feedads.g.doubleclick.net/~a/nX-fDmPDub1KNJgz9taUuzRImvI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=_DIMgy57zKE:hiLIwJCnevE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=_DIMgy57zKE:hiLIwJCnevE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=_DIMgy57zKE:hiLIwJCnevE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=_DIMgy57zKE:hiLIwJCnevE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=_DIMgy57zKE:hiLIwJCnevE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=_DIMgy57zKE:hiLIwJCnevE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/_DIMgy57zKE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/feed/</wfw:commentRss> <slash:comments>30</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/wordpress/15-comandos-sql-wordpress/</feedburner:origLink></item> <item><title>Breadcrumbs: guia completo com exemplos e melhores práticas</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/rNPmLG7Sr6U/</link> <comments>http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/#comments</comments> <pubDate>Mon, 17 May 2010 13:00:21 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[Usabilidade]]></category> <category><![CDATA[Análise]]></category> <category><![CDATA[Conteúdo]]></category> <category><![CDATA[UX]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=568</guid> <description><![CDATA[Guia completo sobre breadcrumbs com exemplos e melhores pr&aacute;ticas!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-577" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumbs-guia-completo-exemplos-melhores-praticas.jpg" alt="Breadcrumbs: guia completo com exemplos e melhores pr&aacute;ticas" width="250" height="250" /></p><p>Em sites com muitas p&aacute;ginas e n&iacute;veis hier&aacute;rquicos, o <strong>breadcrumb</strong> pode aumentar consideravelmente a maneira como os visitantes encontram seu caminho e navegam pelo site. Em termos de usabilidade, breadcrumbs reduzem o n&uacute;mero de a&ccedil;&otilde;es que um visitante precisa tomar para chegar a uma p&aacute;gina de n&iacute;vel superior e melhora o n&iacute;vel de <strong>encontrabilidade</strong> de se&ccedil;&otilde;es e p&aacute;ginas. Os breadcrumbs tamb&eacute;m s&atilde;o uma ajuda visual eficaz que indica a localiza&ccedil;&atilde;o do usu&aacute;rio dentro da hierarquia do site, tornando-se uma grande fonte de informa&ccedil;&atilde;o contextual.</p><div
class="artigo-traduzido">Este &eacute; um artigo traduzido do original &#8220;<a
href="http://www.smashingmagazine.com/2009/03/17/breadcrumbs-in-web-design-examples-and-best-practices-2/">Breadcrumbs In Web Design: Examples And Best Practices</a>&#8220;, da revista virtual <a
href="http://www.smashingmagazine.com/">Smashing Magazine</a>, e sofreu algumas adapta&ccedil;&otilde;es.</div><h2>O que &eacute; um breadcrumb?</h2><div
id="attachment_569" class="wp-caption alignright" style="width: 253px"><img
class="size-full wp-image-569" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb_delicious.jpg" alt="Breadcrumb no delicious" width="243" height="99" /><p
class="wp-caption-text">Breadcrumb no delicious</p></div><p>Um breacrumb (tamb&eacute;m conhecido como &#8220;migalhas de p&atilde;o&#8221; ou &#8220;trilha de migalhas de p&atilde;o&#8221;, em alus&atilde;o &agrave; <a
rel="nofollow" href="http://pt.wikipedia.org/wiki/Jo%C3%A3o_e_Maria">hist&oacute;ria de Jo&atilde;o e Maria</a>) &eacute; um tipo de esquema de navega&ccedil;&atilde;o auxiliar que revela a localiza&ccedil;&atilde;o do usu&aacute;rio em um site ou aplica&ccedil;&atilde;o web. Assim como no conto, breadcrumbs do mundo real oferecem aos usu&aacute;rios uma maneira de &#8220;rastrear&#8221; o caminho de volta e/ou ter uma vis&atilde;o geral e estruturada de em que ponto se encontra dentro da hierarquia em que se encontra.</p><p>Breadcrumbs geralmente s&atilde;o encontrados em sites que possuem uma grande quantidade de conte&uacute;dos organizados de forma hier&aacute;rquica. Tamb&eacute;m &eacute; poss&iacute;vel v&ecirc;-los em aplica&ccedil;&otilde;es web que t&ecirc;m mais de uma etapa, com uma fun&ccedil;&atilde;o semelhante a de uma barra de progresso. Na sua forma mais simples, &eacute; disposto horizontalmente, em links de texto separadas por um s&iacute;mbolo de &#8220;maior que&#8221; (&gt;), que indica o n&iacute;vel daquela p&aacute;gina relativamente aos links das outras p&aacute;ginas na hierarquia do site.</p><h2>Quando breadcrumbs devem ser usados?</h2><p>&Eacute; indicado usar navega&ccedil;&atilde;o por breadcrumb para sites grandes e sites que possuem p&aacute;ginas organizadas hierarquicamente. Um cen&aacute;rio excelente s&atilde;o sites de com&eacute;rcio eletr&ocirc;nico, nos quais uma grande variedade de produtos s&atilde;o agrupados em categorias l&oacute;gicas.</p><p>N&atilde;o &eacute; aconselh&aacute;vel usar breadcrumb em sites que n&atilde;o t&ecirc;m agrupamento ou hierarquia l&oacute;gica. Uma &oacute;tima maneira de determinar se um site se beneficiar&aacute; com a navega&ccedil;&atilde;o por breadcrumbs &eacute; construir um mapa do site ou um diagrama representando sua arquitetura de navega&ccedil;&atilde;o e analisar se o recurso melhora a capacidade do usu&aacute;rio de navegar dentro e entre as categorias.</p><p>Breadcrumbs devem ser considerados como um recurso extra e n&atilde;o deve substituir o menu principal do site ou aplicativo. &Eacute; uma caracter&iacute;stica de conveni&ecirc;ncia, um regime navega&ccedil;&atilde;o secund&aacute;ria que permite aos usu&aacute;rios determinar onde est&atilde;o e &eacute; considerado e deve ser usado como uma forma alternativa ou um <strong>auxiliar de navega&ccedil;&atilde;o</strong>.</p><h2>Tipos de breadcrumbs</h2><p>Existem diversos tipos e diversas classifica&ccedil;&otilde;es para os breadcrumbs. Se todos os sistemas de classifica&ccedil;&atilde;o e ordena&ccedil;&atilde;o fossem aqui listados, este artigo ficaria imenso! Portanto, para facilitar a abordagem do tema, ser&aacute; considerado que existem <strong>3 tipos de breadcrumbs</strong>.</p><h3>Breadcrumb de Localiza&ccedil;&atilde;o</h3><p><strong>Breadcrumbs de Localiza&ccedil;&atilde;o</strong> mostram ao usu&aacute;rio em qual ponto se encontra dentro da hierarquia do site. Eles s&atilde;o normalmente utilizados para sistemas de navega&ccedil;&atilde;o em que se tem v&aacute;rios n&iacute;veis (normalmente mais de dois). No exemplo abaixo (retirado do site <a
href="http://www.sitepoint.com/">SitePoint</a>), cada link &eacute; para uma p&aacute;gina que est&aacute; um n&iacute;vel superior ao da sua direita.</p><p><img
class="aligncenter size-full wp-image-570" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-de-localizacao-exemplo.jpg" alt="Exemplo de Breadcrumb de Localiza&ccedil;&atilde;o" width="500" height="179" /></p><h3>Breadcrumb de Atributo</h3><p><strong>Breadcrumbs de Atributo</strong> servem para exibir os atributos de uma determinada p&aacute;gina, em particular. Por exemplo, na <a
href="http://www.newegg.com/">Newegg</a> o breadcrumb mostrar os atributos dos itens exibidos em uma p&aacute;gina, em especial.</p><p><img
class="aligncenter size-full wp-image-571" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-de-atributo-exemplo.jpg" alt="Exemplo de Breadcrumb de Atributo" width="500" height="109" />Esta p&aacute;gina exibe todos os cases de computador que t&ecirc;m as caracter&iacute;sticas de serem fabricados pela Lian Li e ter uma MicroATX Mini Tower.</p><h3>Breadcrumb de Caminho</h3><p>Mostram aos usu&aacute;rios os passos que tomaram at&eacute; chegar a uma p&aacute;gina espec&iacute;fica. <strong>Breadcrumbs de Caminho</strong> s&atilde;o din&acirc;micos e mostram as p&aacute;ginas que o usu&aacute;rio visitou antes de chegar na p&aacute;gina p&aacute;gina em que se encontra atualmente.</p><p>Em rela&ccedil;&atilde;o ao Breadcrumb de Localiza&ccedil;&atilde;o e ao Breadcrumb de Atributo, o Breadcrumb de Caminho n&atilde;o &eacute; t&atilde;o &#8220;popular&#8221; e n&atilde;o &eacute; t&atilde;o utilizado em web sites e sistemas virtuais.</p><h2>Benef&iacute;cios de se usar breadcrumbs</h2><p>Existem diversos benef&iacute;cios em se valer dos breadcrumbs como sistema auxiliar de navega&ccedil;&atilde;o em um site, dentre os quais:</p><ul><li><strong>Conveni&ecirc;ncia para os visitantes.</strong> Breadcrumbs s&atilde;o usados principalmente para dar aos usu&aacute;rios um meio secund&aacute;rio de navegar em um web site. Ao oferecer um breadcrumb em um grande site multi-n&iacute;vel, os visitantes podem navegar para as categorias de n&iacute;vel superior com mais facilidade.</li><li><strong>Redu&ccedil;&atilde;o de cliques.</strong> Ao inv&eacute;s de usar o bot&atilde;o &#8220;Voltar&#8221; do navegador ou a navega&ccedil;&atilde;o principal do site para voltar &agrave; p&aacute;gina de n&iacute;vel superior, os usu&aacute;rios podem usar o breadcrumb para realizar a mesma a&ccedil;&atilde;o com um menor n&uacute;mero de cliques.</li><li><strong>Ocupam pouco espa&ccedil;o.</strong> Geralmente os breadcrumbs s&atilde;o em sentido horizontal e de estilo &#8220;clean&#8221;, portanto n&atilde;o ocupam muito espa&ccedil;o na p&aacute;gina. A vantagem &eacute; que eles t&ecirc;m pouco ou nenhum impacto negativo em termos de sobrecarga de conte&uacute;do.</li><li><strong>Redu&ccedil;&atilde;o de Taxa de Rejei&ccedil;&atilde;o.</strong> Breadcrumbs podem ser uma &oacute;tima maneira de atrair visitantes pela primeira vez para examinar um site depois de ter visto a p&aacute;gina de destino . Por exemplo, digamos que um usu&aacute;rio chega a uma p&aacute;gina atrav&eacute;s de uma pesquisa no Google, vendo um breadcrumb, este pode &#8220;seduzir&#8221; o visitante para as p&aacute;ginas de n&iacute;vel superior para visualizar os t&oacute;picos relacionados ao seu interesse. Isso reduz a Taxa de Rejei&ccedil;&atilde;o (<a
href="http://www.mestreseo.com.br/introducao/bounce-rate-e-seo">Bounce Rate</a>) do site.</li></ul><h2>Erros na implementa&ccedil;&atilde;o de breadcrumbs</h2><p>Usar breadcrumbs &eacute; uma quest&atilde;o bastante simples e h&aacute; apenas algumas diretrizes a considerar antes de tomar a decis&atilde;o de implement&aacute;-lo em um site. Vamos dar uma olhada em alguns erros comuns que devem ser evitados.</p><h3>Usar breadcrumb quando n&atilde;o &eacute; preciso</h3><p>Um erro comum &eacute; usar breadcrumbs em ocasi&otilde;es em que n&atilde;o trazem nenhum benef&iacute;cio aos visitantes.</p><p><img
class="aligncenter size-full wp-image-572" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-erro.jpg" alt="Erro de breadcrumb: usar breadcrumb quando n&atilde;o &eacute; preciso" width="500" height="200" /></p><p>No exemplo acima, o site <a
href="http://www.slicethepie.com/">Slicethepie</a> corre o risco de sobrecarregar os usu&aacute;rios com op&ccedil;&otilde;es de navega&ccedil;&atilde;o demais: (1) navega&ccedil;&atilde;o prim&aacute;ria; (2) breadcrumb; e (3) navega&ccedil;&atilde;o secund&aacute;ria; est&atilde;o muito pr&oacute;ximas umas das outras. O breadcrumb, neste aplicativo, n&atilde;o acrescenta nada aos visitantes, j&aacute; que a navega&ccedil;&atilde;o secund&aacute;ria para as p&aacute;ginas de n&iacute;vel inferior fica logo abaixo dele. Al&eacute;m disso, clicando no link de segundo n&iacute;vel no breadcrumb (&#8220;Music&#8221;), isso leva de volta &agrave; primeira aba (&#8220;Listen&#8221;), que sugere erroneamente que a primeira guia est&aacute; em um n&iacute;vel mais elevado do que os outros dois (&#8220;Search&#8221; and &#8220;Artist hall of fame&#8221;).</p><h3>Usar breadcrumbs como navega&ccedil;&atilde;o prim&aacute;ria</h3><p>Como j&aacute; comentado anteriormente, breadcrumbs devem ser usados como elemento de navega&ccedil;&atilde;o <strong>auxiliar</strong>.</p><p><img
class="aligncenter size-full wp-image-573" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-erro-2.jpg" alt="Erro de breadcrumb: usar breadcrumb como navega&ccedil;&atilde;o prim&aacute;ria" width="496" height="128" /></p><p>No exemplo acima, <a
href="http://www.mefeedia.com/">Mefeedia</a> n&atilde;o oferece um menu de navega&ccedil;&atilde;o prim&aacute;rio para a visualiza&ccedil;&atilde;o de v&iacute;deos. Embora exista a navega&ccedil;&atilde;o textual no rodap&eacute;, n&atilde;o h&aacute; menu de navega&ccedil;&atilde;o no corpo das p&aacute;ginas, tornando-se dif&iacute;cil de navegar para outras se&ccedil;&otilde;es do site.<br
/> <img
class="aligncenter size-full wp-image-574" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-erro-2b.jpg" alt="Erro de breadcrumb: usar breadcrumb como navega&ccedil;&atilde;o prim&aacute;ria" width="500" height="381" /></p><p>Se um visitante chega em uma p&aacute;gina de v&iacute;deo diretamente &#8211; por exemplo, atrav&eacute;s de um resultado de pesquisa do Google &#8211; sua &uacute;nica op&ccedil;&atilde;o de navega&ccedil;&atilde;o &eacute; o breadcrumb. Ou j&aacute; estiver navegando nas p&aacute;ginas do site e acessar uma p&aacute;gina que n&atilde;o exiba o menu de navega&ccedil;&atilde;o principal, &eacute; preciso usar o bot&atilde;o &#8220;Voltar&#8221; do navegador para acessar o menu principal.</p><h3>Usar breadcrumbs quando a p&aacute;gina tem m&uacute;ltiplas categorias</h3><p>Breadcrumbs t&ecirc;m uma estrutura linear, ent&atilde;o, us&aacute;-los vai ser dif&iacute;cil se as p&aacute;ginas do site n&atilde;o podem ser classificadas em categorias puras. Decidir se se deve usar breadcrumb depende de como a hierarquia do site foi projetada. Quando uma p&aacute;gina de n&iacute;vel inferior &eacute; (ou pode ser colocada) em mais de uma categoria-m&atilde;e, breadcrumbs s&atilde;o ineficazes, imprecisos e confusos para o usu&aacute;rio.</p><h2>Considera&ccedil;&otilde;es sobre o design da navega&ccedil;&atilde;o por breadcrumb</h2><p>Ao projetar um sistema de navega&ccedil;&atilde;o por breadcrumb, &eacute; preciso ter em mente v&aacute;rias coisas. Vamos dar uma olhada em algumas quest&otilde;es que podem surgir quando voc&ecirc; est&aacute; trabalhando com breadcrumbs.</p><h3>O que deve ser usado para separar os links do breadcrumb?</h3><p>O mais comumente aceito e reconhecido s&iacute;mbolo para separar links em breadcrumbs &eacute; o &#8220;maior que&#8221; (&gt;). Normalmente, o sinal &eacute; usado para denotar hierarquia, como no formato &#8220;Categoria M&atilde;e &gt; Categoria Filha&#8221;.</p><p><img
class="aligncenter size-full wp-image-575" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-exemplo-google.jpg" alt="Exemplo de breadcrumb: Google" width="433" height="136" /></p><p>Outros s&iacute;mbolos utilizados s&atilde;o setas apontando para a direita, as marcas de &acirc;ngulo direito de cita&ccedil;&atilde;o (&raquo;) e barras (/).</p><p><img
class="aligncenter size-full wp-image-576" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/breadcrumb-exemplo-uxmatters-outros-simbolos.jpg" alt="Exemplo de breadcrumb com outro s&iacute;mbolo: UXmatters" width="438" height="100" /></p><p>A escolha depende da est&eacute;tica do site e do tipo de breadcrumb usado. Por exemplo, para um Breadcrumb de Caminho, no qual as liga&ccedil;&otilde;es n&atilde;o t&ecirc;m necessariamente uma rela&ccedil;&atilde;o hier&aacute;rquica entre si, usar o s&iacute;mbolo &#8220;&gt;&#8221; n&atilde;o transmite sua rela&ccedil;&atilde;o apropriadamente.</p><h3>O qu&atilde;o grande um breadcrumb deve ser?</h3><p>Voc&ecirc; n&atilde;o quer que o seu breadcrumb &#8220;domine&#8221; a p&aacute;gina. O breadcrumb tem a fun&ccedil;&atilde;o de ser um <strong>auxiliar</strong> aos visitantes; seu tamanho deve transmitir esta fun&ccedil;&atilde;o aos usu&aacute;rios e, portanto, deve, pelo menos, ser menor ou menos importante do que o menu de navega&ccedil;&atilde;o principal.</p><p>Uma boa regra a seguir para decidir o tamanho de um breadcrumb &eacute; que ele n&atilde;o deve ser o primeiro item a chamar a aten&ccedil;&atilde;o do usu&aacute;rio quando ele entra em uma p&aacute;gina do site.</p><h3>Onde deve ser a localiza&ccedil;&atilde;o do breadcrumb?</h3><p>Breadcrumbs geralmente s&atilde;o exibidos na metade superior da p&aacute;gina &#8211; abaixo do menu de navega&ccedil;&atilde;o principal se um esquema de menu horizontal &eacute; usado.</p><p>Alguns poucos sites costumam repetir o breadcrumb pr&oacute;ximo ao rodap&eacute;, no final do conte&uacute;do de cada p&aacute;gina, mas isso n&atilde;o &eacute; muito comum.</p><h2>Resumo das caracter&iacute;sticas de breadcrumbs</h2><p><strong>Porque usar breadcrumbs:</strong></p><ul><li>S&atilde;o excelente recurso de usabilidade</li><li>Eliminam cliques adicionais</li><li>Mostram a hierarquia para usu&aacute;rio</li><li>S&atilde;o visualmente  agrad&aacute;veis</li><li>Fornecem ajuda adicional</li><li>Diminuem a Taxas de Rejei&ccedil;&atilde;o do site</li><li>Estimulam o interesse e curiosidade dos visitantes</li></ul><p><strong>Melhores pr&aacute;ticas de breadcrumbs:</strong></p><ul><li>Usar breadcrumbs no topo da p&aacute;gina</li><li>Usar breadcrumbs consistentemente</li><li>Estilizar (design) os breadcrumbs apropriadamente</li><li>Separar claramente cada n&iacute;vel do breadcrumb</li><li>Destacar (normalmente com negrito) o &uacute;ltimo item do breadcrumb (p&aacute;gina atual)</li><li>A p&aacute;gina atual (&uacute;ltimo item do breadcrumb) n&atilde;o deve ser link</li><li>Breadcrumbs n&atilde;o devem substituir a navega&ccedil;&atilde;o principal</li></ul><h2>Exemplos de breadcrumbs</h2><p>Muita coisa foi vista neste <strong>guia completo sobre breadcrumbs</strong> e, como n&atilde;o poderia deixar de ser, uma listagem com <strong>exemplos  de breadcrumbs</strong> se faz necess&aacute;ria. Para n&atilde;o pesar muito o tamanho da p&aacute;gina nem tornar o artigo muito extenso, seguem links com exemplos variados de breadcrumbs para an&aacute;lise, observa&ccedil;&atilde;o e inspira&ccedil;&atilde;o:</p><ul><li><a
href="http://www.kreativegarden.com/2009/03/28/know-where-you-are-breadcrumbs-inspiration/">Know where you are – Breadcrumbs Inspiration</a></li><li><a
href="http://www.greepit.com/2009/02/breadcrumb-inspiration-for-designers/">Breadcrumb Inspiration for Designers</a></li><li><a
href="http://www.webdeveloperjuice.com/2010/04/12/11-cool-breadcrumbs-for-user-friendly-navigation/">11 cool Breadcrumbs for user friendly navigation</a></li><li><a
href="http://web-patterns.net/category/breadcrumbs/">Inspirational and creative Breadcrumbs for web design</a></li><li><a
href="http://patterntap.com/tap/collection/breadcrumbs">Pattern Tap Breadcrumbs Collection</a></li></ul><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/wireframe-web-guia-completo/" title="Wireframes para web: guia completo de desenvolvimento">Wireframes para web: guia completo de desenvolvimento</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/json-javascript-object-notation/" title="JSON &#8211; JavaScript Object Notation">JSON &#8211; JavaScript Object Notation</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/erros-comuns-desenvolvimento-web-campanhas-seo/" title="Erros comuns em desenvolvimento web para campanhas de SEO">Erros comuns em desenvolvimento web para campanhas de SEO</a></li><li><a
href="http://desenvolvimentoparaweb.com/javascript/melhores-editores-wysiwyg-para-seu-projeto/" title="Melhores editores WYSIWYG para seu projeto">Melhores editores WYSIWYG para seu projeto</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/4-elementos-design-call-to-action/" title="4 elementos de design para um bom call to action">4 elementos de design para um bom call to action</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/user-interface-dicas-rapidas/" title="User Interface em dicas rápidas">User Interface em dicas rápidas</a></li><li><a
href="http://desenvolvimentoparaweb.com/seo/6-mitos-seo-voce-deve-evitar/" title="6 mitos de SEO que você deve evitar">6 mitos de SEO que você deve evitar</a></li><li><a
href="http://desenvolvimentoparaweb.com/midia-social/mastering-twitter-o-manual-completo-sobre-twitter-para-desenvolvedores-e-marketeiros/" title="Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros">Mastering Twitter, o manual completo sobre twitter para desenvolvedores e marketeiros</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-criar-sumarios-dinamicamente-com-o-toc-table-of-contents-jquery-plugin-jquerytoc/" title="Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin">Como criar sumários dinamicamente com o TOC (Table of Contents) jQuery plugin</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/web-sites-e-comunicacao-21-maneiras-de-os-sites-se-comunicarem-com-seus-visitantes/" title="Web sites e comunicação: 21 maneiras de os sites se comunicarem com seus visitantes">Web sites e comunicação: 21 maneiras de os sites se comunicarem com seus visitantes</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/jlclZoq7zXgqJ1-HkLCWym2w23c/0/da"><img src="http://feedads.g.doubleclick.net/~a/jlclZoq7zXgqJ1-HkLCWym2w23c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jlclZoq7zXgqJ1-HkLCWym2w23c/1/da"><img src="http://feedads.g.doubleclick.net/~a/jlclZoq7zXgqJ1-HkLCWym2w23c/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=rNPmLG7Sr6U:HIpMHHffNzk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=rNPmLG7Sr6U:HIpMHHffNzk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=rNPmLG7Sr6U:HIpMHHffNzk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=rNPmLG7Sr6U:HIpMHHffNzk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=rNPmLG7Sr6U:HIpMHHffNzk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=rNPmLG7Sr6U:HIpMHHffNzk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/rNPmLG7Sr6U" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/feed/</wfw:commentRss> <slash:comments>14</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/usabilidade/breadcrumbs-guia-completo-exemplos-melhores-praticas/</feedburner:origLink></item> <item><title>dpw2010: novo tema do desenvolvimento para web</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/oPR93DEpsfM/</link> <comments>http://desenvolvimentoparaweb.com/miscelanea/dpw2010-novo-tema-desenvolvimento-para-web/#comments</comments> <pubDate>Mon, 10 May 2010 03:01:46 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[miscelânea]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=589</guid> <description><![CDATA[Lan&ccedil;amento do tema dpw2010, resultado da promo&ccedil;&atilde;o de an&uacute;ncio gr&aacute;tis e mais considera&ccedil;&otilde;es sobre o blog!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-624" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/dpw2010.gif" alt="" width="150" height="150" /></p><p>No dia 05/04 foi publicado o artigo &#8220;<a
href="http://desenvolvimentoparaweb.com/miscelanea/promocao-dpw2010-anuncie-gratis-no-desenvolvimento-para-web/">Promo&ccedil;&atilde;o dpw2010: anuncie gr&aacute;tis no desenvolvimento para web</a>&#8220;, que divulgava a promo&ccedil;&atilde;o na qual o ganhador teria o direito de anunciar gr&aacute;tis no <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a>. Esse an&uacute;ncio gr&aacute;tis se daria para comemorar o novo tema do blog, tema este que foi inaugurado hoje: <strong>dpw2010</strong>!</p><h2>Web design, estrutura e usabilidade</h2><p>O web design foi feito com base na <a
href="http://pt.wikipedia.org/wiki/Propor%C3%A7%C3%A3o_%C3%A1urea">Propor&ccedil;&atilde;o &Aacute;urea</a>, com o objetivo de melhorar a distribui&ccedil;&atilde;o do conte&uacute;do e proporcionar melhor sensa&ccedil;&atilde;o ao visitante. A fim de dar ainda mais &ecirc;nfase aos conte&uacute;dos, o estilo <em>clean </em>foi refor&ccedil;ado e aprimorado!</p><h3>P&aacute;gina Inicial</h3><p>Durante a an&aacute;lise do tema antigo, foi constatado que a p&aacute;gina inicial n&atilde;o tinha uma apresenta&ccedil;&atilde;o muito boa. As imagens e demais elementos &#8220;incorporados&#8221; no texto faziam com que a index demorasse para carregar. Em fun&ccedil;&atilde;o do peso, somente 3 artigos eram exibidos por vez e uma pagina&ccedil;&atilde;o era mostrada ao final.</p><p>No <strong>dpw2010</strong> &eacute; diferente: priorizou-se, ao m&aacute;ximo, a performance e o desempenho do site! A p&aacute;gina inicial, por exemplo, agora mostra 7 artigos, sendo que somente o mais atual, que recebe destaque, tem uma imagem vinculada sendo exibida. Quer dizer, &eacute; poss&iacute;vel ao visitante visualizar uma quantidade bem maior de artigos de uma s&oacute; vez, num tempo de carregamento super otimizado!</p><h3>P&aacute;ginas de Artigos</h3><p>As p&aacute;ginas de artigos tamb&eacute;m receberam aprimoramentos. Agora v&aacute;rios efeitos visuais acontecem para proporcionar uma melhor experi&ecirc;ncia e facilitar o uso do site. Mas talvez, devido ao tempo, n&atilde;o tenha sido poss&iacute;vel implementar os efeitos para todos os browsers&#8230;  ;-)</p><p>Por exemplo, clique em &#8220;Sum&aacute;rio&#8221; e selecione algum dos itens. Uma rolagem suave acontece para levar at&eacute; a &acirc;ncora selecionada. Se a tela rolar o suficiente, um bot&atilde;o aparece &agrave; direita da tela para levar novamente ao sum&aacute;rio, facilitando a navega&ccedil;&atilde;o e experi&ecirc;ncia no site.</p><h3>P&aacute;gina de Categorias e Busca</h3><p>Agora as P&aacute;ginas de  Categorias exibem todos os artigos de uma s&oacute; vez! Com o novo tema, a quest&atilde;o da pagina&ccedil;&atilde;o p&ocirc;de ser eliminada de vez, tanto na p&aacute;gina inicial, quanto nas p&aacute;ginas de categorias. J&aacute; que, agora, as listagens de artigos s&atilde;o mostradas de forma f&aacute;cil de &#8220;escanear&#8221; e com apresenta&ccedil;&atilde;o de somente t&iacute;tulo e descri&ccedil;&atilde;o, mesmo as categorias que possuem mais artigos ficam leves de serem exibidas/carregadas.</p><p>A p&aacute;gina de busca segue, basicamente, a mesma estrutura da P&aacute;gina de Categorias: tudo &eacute; exibido de uma s&oacute; vez, com a oportunidade de todos os resultados serem visualizados em uma &uacute;nica p&aacute;gina. Para quem faz buscas relativamente espec&iacute;ficas, consegue ver o resultado com v&aacute;rios artigos mesmo &#8220;antes da dobra&#8221;.</p><h3>Barra de ferramentas</h3><p>Agora o <strong>desenvolvimento para web</strong> possui uma barra de ferramentas! Em qualquer lugar do site em que estiver, o visitante pode se valer da barra de ferramentas flutuante, sempre fixa no topo da tela. Op&ccedil;&otilde;es s&atilde;o mostradas/ocultadas dependendo do tipo da p&aacute;gina atual, como as op&ccedil;&otilde;es de enviar a not&iacute;cia para um amigo e compartilhar em diversas redes sociais &#8211; uma &ecirc;nfase especial ao exclusivo <em>Sistema DPW para Altera&ccedil;&atilde;o do Tamanho de Textos <sup>&reg;</sup></em>!</p><h2>An&aacute;lise de performance e desempenho</h2><p>As diversas modifica&ccedil;&otilde;es no design, estrutura, otimiza&ccedil;&atilde;o de fun&ccedil;&atilde;o e todas as demais medidas feitas para aumentar a performance e desempenho do blog deram certo.</p><div
id="attachment_593" class="wp-caption aligncenter" style="width: 490px"><img
class="size-full wp-image-593 " src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/weight-graphs-before.gif" alt="Gr&aacute;fico de Peso de Arquivos: Antes" width="480" height="124" /><p
class="wp-caption-text">Gr&aacute;fico de Peso de Arquivos: Antes</p></div><p>Na p&aacute;gina inicial, por exemplo, utilizando o complemento para Firefox <a
href="https://addons.mozilla.org/pt-BR/firefox/addon/5369">YSlow</a>, foi poss&iacute;vel notar que o n&uacute;mero de requisi&ccedil;&otilde;es HTTP estava bem elevado e, pelo fato de as folhas de estilo e javascripts n&atilde;o estarem compactados, isso tamb&eacute;m contribu&iacute;a para um carregamento n&atilde;o muito satisfat&oacute;rio. Depois de otimizar os scripts e CSS e retirar/implementar alguns plugins no WordPress, o ganho de performance &eacute; not&aacute;vel!</p><div
id="attachment_592" class="wp-caption aligncenter" style="width: 490px"><img
class="size-full wp-image-592 " src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/weight-graphs-after.gif" alt="Gr&aacute;fico de Peso de Arquivos: Depois" width="480" height="124" /><p
class="wp-caption-text">Gr&aacute;fico de Peso de Arquivos: Depois</p></div><p>Habilitando o analisador de Rede do <a
href="https://addons.mozilla.org/pt-BR/firefox/addon/1843">Firebug</a> e vendo os resultados, os n&uacute;meros n&atilde;o eram, l&aacute;, dos melhores&#8230;</p><div
id="attachment_591" class="wp-caption aligncenter" style="width: 514px"><img
class="size-full wp-image-591" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/load-time-before.gif" alt="Velocidade de carregamento: antes" width="504" height="100" /><p
class="wp-caption-text">Velocidade de carregamento: antes</p></div><p>Com os melhoramentos do novo tema do <strong>desenvolvimento para web</strong> e os j&aacute; referidos meios para diminui&ccedil;&atilde;o de requisi&ccedil;&otilde;es HTTP e compacta&ccedil;&atilde;o de scripts e folhas de estilo, as coisas ficaram bem melhores!</p><div
id="attachment_590" class="wp-caption aligncenter" style="width: 514px"><img
class="size-full wp-image-590" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/load-time-after.gif" alt="Velocidade de carregamento: depois" width="504" height="100" /><p
class="wp-caption-text">Velocidade de carregamento: depois</p></div><p>Na pr&aacute;tica, houve uma melhora de quase <strong>300%</strong>!</p><h2>Resultado da promo&ccedil;&atilde;o dpw2010</h2><p>Como devidamente explicado no artigo da promo&ccedil;&atilde;o, infelizmente uma mudan&ccedil;a nos crit&eacute;rios de sorteio teve que ser realizada. De qualquer forma, como garantido, aqueles que haviam participado at&eacute; ent&atilde;o n&atilde;o estariam de fora.</p><p>A busca do twitter possui &#8220;prazo de validade&#8221;. Felizmente existem boas <a
href="http://desenvolvimentoparaweb.com/midia-social/twitter-ferramentas/">ferramentas para o twitter</a>, como o <a
href="http://hootsuite.com/">HootSuite</a>, que permitem armazenamento de mensagem definidas por crit&eacute;rios espec&iacute;ficos. Com isso, ficou f&aacute;cil: foi s&oacute; jogar o nome de todos os participantes em uma planilha e gerar um n&uacute;mero aleat&oacute;rio no <a
href="http://www.random.org/">random.org</a>.</p><p>E a vencedora da promo&ccedil;&atilde;o dpw2010 foi <strong>Raquel Oberg</strong> (<a
href="http://twitter.com/raqueloberg">@raqueloberg</a>), da <a
href="http://www.themawebdesign.com.br/">Thema Webdesign</a>! Como vencedora, seu pr&ecirc;mio ser&aacute; um banner na barra lateral do blog que ser&aacute; exibido durante <strong>2 meses.</strong></p><p><strong> </strong>Parab&eacute;ns, Raquel, pela promo&ccedil;&atilde;o e por seus trabalhos na Thema!</p><h2>Considera&ccedil;&otilde;es finais</h2><p>Ocorreu uma mudan&ccedil;a importante em rela&ccedil;&atilde;o &agrave; participa&ccedil;&atilde;o do <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a> nas m&iacute;dias sociais: a partir de agora, o twitter oficial do blog &eacute; <a
href="http://twitter.com/desenvolvweb">@desenvolvweb</a>! Pe&ccedil;o aos seguidores do perfil <a
href="http://twitter.com/tarciozemel">@tarciozemel</a> interessados estritamente em assuntos relativos a desenvolvimento web para seguirem <a
href="http://twitter.com/desenvolvweb">@desenvolvweb</a>, pois os assuntos da &aacute;rea ser&atilde;o tratados neste.</p><p>Existem diversos <em>phantom labels</em> no novo tema e diversas funcionalidades/ferramentas em desenvolvimento, que ser&atilde;o publicados em momentos oportunos. A inten&ccedil;&atilde;o &eacute; fazer do blog um espa&ccedil;o cada vez mais agrad&aacute;vel e com conte&uacute;do cada vez de mais qualidade para os leitores! Os estudos feitos foram para que os implementos e melhorias no blog facilitem a navega&ccedil;&atilde;o e garantam uma experi&ecirc;ncia pr&aacute;tica e objetiva.</p><p>Fica nosso &#8220;Muito obrigado!&#8221; aos participantes e leitores, assinantes do <a
href="http://desenvolvimentoparaweb.com/feed/">feed</a>, seguidores do <a
href="http://twitter.com/desenvolvweb">twitter</a> e para todos que contribuem para que o <a
href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a> seja <strong>um dos principais blogs sobre desenvolvimento web do Brasil!</strong></p><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li>Nenhum artigo relacionado...</li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/tS1KKmbQ3_eKwEYtjyghGCxVYtA/0/da"><img src="http://feedads.g.doubleclick.net/~a/tS1KKmbQ3_eKwEYtjyghGCxVYtA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tS1KKmbQ3_eKwEYtjyghGCxVYtA/1/da"><img src="http://feedads.g.doubleclick.net/~a/tS1KKmbQ3_eKwEYtjyghGCxVYtA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=oPR93DEpsfM:Ar3WFKGofwo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=oPR93DEpsfM:Ar3WFKGofwo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=oPR93DEpsfM:Ar3WFKGofwo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=oPR93DEpsfM:Ar3WFKGofwo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=oPR93DEpsfM:Ar3WFKGofwo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=oPR93DEpsfM:Ar3WFKGofwo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/oPR93DEpsfM" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/miscelanea/dpw2010-novo-tema-desenvolvimento-para-web/feed/</wfw:commentRss> <slash:comments>5</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/miscelanea/dpw2010-novo-tema-desenvolvimento-para-web/</feedburner:origLink></item> <item><title>Ferramentas e recursos para desenvolvimento web</title><link>http://feedproxy.google.com/~r/desenvolvimentoparaweb/~3/YZedi_n9bos/</link> <comments>http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/#comments</comments> <pubDate>Mon, 03 May 2010 19:41:33 +0000</pubDate> <dc:creator>Tárcio Zemel</dc:creator> <category><![CDATA[indicações]]></category> <category><![CDATA[Ferramentas]]></category> <category><![CDATA[Otimização]]></category> <category><![CDATA[Performance]]></category> <guid isPermaLink="false">http://desenvolvimentoparaweb.com/?p=612</guid> <description><![CDATA[Conhe&ccedil;a ferramentas e recursos para auxiliar no desenvolvimento de sites e sistemas web interativos!]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-613" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/04/ferramentas-recursos-desenvolvimento-web.jpg" alt="Ferramentas e recursos para desenvolvimento web" width="150" height="150" /></p><p>Muito do trabalho de desenvolvimento web &eacute; realizado usando ferramentas e recursos de terceiros. Os desenvolvedores web sabemos fazer o que precisamos, mas, convenhamos, &eacute; bem mais simples, r&aacute;pido e pr&aacute;tico nos valermos de ferramentas de desenvolvimento web j&aacute; prontas, que facilitam nosso trabalho e aumentam nossa produtividade.</p><h2>Loaders (ou &Iacute;cones de Loading)</h2><p><img
class="aligncenter size-full wp-image-619" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/loaders-ferramentas-recursos-desenvolvimento-web.jpg" alt="Ferramentas e recursos para desenvolvimento web: loaders (&iacute;cones loading ajax)" width="500" height="100" /></p><p>&Eacute; comum o desenvolvimento de sites utilizando AJAX. Toda vez que for preciso usar um GIF animado, voc&ecirc; pode consultar alguns sites para gerar e/ou baixar GIFs de anima&ccedil;&atilde;o para loading.</p><ul><li><a
href="http://www.ajax.su/ajax_activity_indicators.html">AJAX Activity Indicators</a></li><li><a
href="http://www.webscriptlab.com/">Ajax Loading Gif Generator</a></li><li><a
href="http://ajaxload.info/">Ajaxload</a></li><li><a
href="http://www.chimply.com/">Chimply</a></li><li><a
href="http://www.loadinfo.net/">Load Info</a></li><li><a
href="http://preloaders.net/">Preloaders.net</a></li></ul><h2>Compatibilidade e Suporte CSS</h2><p><img
class="aligncenter size-full wp-image-614" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/css3-compatibilidade-ferramentas-recursos-desenvolvimento-web.gif" alt="Ferramentas e recursos para desenvolvimento web: CSS3 tabela de compatibilidade" width="500" height="100" /></p><p>As folhas de estilo possuem muitas propriedades e valores para suas regras e, com a imensa gama de browsers e peculiaridades de cada um, &eacute; sempre bom ter alguns guias de compatibilidade e suporte CSS &agrave; disposi&ccedil;&atilde;o.</p><ul><li><a
href="http://findmebyip.com/litmus#target-selector">CSS3 and HTML5  Properties &amp; Applications</a>;</li><li><a
href="http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx">CSS Compatibility and Internet Explorer</a>;</li><li><a
href="http://www.quirksmode.org/m/css.html">CSS contents and browser  compatibility &#8211; mobile</a></li><li><a
href="http://centricle.com/ref/css/filters/?highlight_columns=true">CSS Filters (CSS hacks)</a>;</li><li><a
href="http://www.codestyle.org/css/media/print-BrowserSummary.shtml">CSS  print media browser conformance</a>;</li><li><a
href="http://www.css3.info/modules/selector-compat/">Compatibility table: CSS3 Selectors</a>;</li><li><a
href="http://westciv.com/wiki/Experimental_CSS_compatibility_table">Experimental  CSS compatibility table</a>;</li><li><a
href="http://www.campaignmonitor.com/css/">Guide to CSS support in email clients</a>;</li><li><a
href="http://www.quirksmode.org/dom/w3c_css.html">W3C DOM Compatibility &#8211; CSS</a>;</li><li><a
href="http://www.webdevout.net/browser-support-css">Web Browser CSS Support</a>.</li></ul><h2>.htaccess</h2><p><img
class="aligncenter size-full wp-image-618" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/htaccess-compatibilidade-ferramentas-recursos-desenvolvimento-web.gif" alt="Ferramentas e recursos para desenvolvimento web: htaccess gerador ferramentas" width="500" height="100" /></p><p>Na maioria das vezes &eacute; importante e &uacute;til configurar algumas coisas no site atrav&eacute;s do .htaccess. Para algumas opera&ccedil;&otilde;es b&aacute;sicas, n&atilde;o deixe de conferir alguns geradores de .htaccess.</p><ul><li><a
href="http://tools.dynamicdrive.com/userban/">.htaccess Banning  Generator (beta)</a>;</li><li><a
href="http://www.htaccesseditor.com/en.shtml">.htaccess Editor</a>;</li><li><a
href="http://www.htaccessredirect.net/">.htaccess redirect</a>;</li><li><a
href="http://www.iwebtool.com/htaccess_url_rewrite">.htaccess URL Rewrite</a>;</li><li><a
href="http://www.htaccesstools.com/">Htaccess Tools</a>;</li><li><a
href="http://www.webmaster-money.org/tools/htaccess_generator.php">Online  .htaccess generator and builder</a>;</li><li><a
href="http://tools.devshed.com/webmaster-tools/htaccess-generator/">Webmaster Tools &#8211; .htaccess Generator</a>.</li></ul><h2>Otimizadores e Formatadores de CSS</h2><p><img
class="aligncenter size-full wp-image-615" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/css-compressor-otimizador-ferramentas-recursos-desenvolvimento-web.gif" alt="Ferramentas e recursos para desenvolvimento web: compressor CSS" width="500" height="100" /></p><p>Ter um set de folhas de estilo otimizado faz parte da tarefa de qualquer desenvolvedor front-end. Para melhor ainda mais a performance das CSS, &eacute; bom fazer uma &#8220;limpeza&#8221; atrav&eacute;s de algumas ferramentas &uacute;teis (lembrando de ter sempre um backup dos arquivos originais).</p><ul><li><a
href="http://www.cleancss.com/?lang=en">Clean CSS</a>;</li><li><a
href="http://www.codebeautifier.com/">Code Beautifier</a>;</li><li><a
href="http://www.askapache.com/online-tools/compress-css/">Compress CSS</a>;</li><li><a
href="http://www.cssportal.com/generators/optimize.htm">CSS Code Formatter and Optimizer</a>;</li><li><a
href="http://www.generateit.net/css-optimize/">CSS Code Optimizer</a>;</li><li><a
href="http://www.lotterypost.com/css-compress.aspx">CSS Compressor of Lottery Post</a>;</li><li><a
href="http://www.cssdrive.com/index.php/main/csscompressor/">CSS Drive CSS Compressor</a>;</li><li><a
href="http://www.lonniebest.com/FormatCSS/">Format CSS Online</a>;</li><li><a
href="http://www.cssoptimiser.com/">Online CSS Optimiser / Optimizer</a>;</li><li><a
href="http://iceyboard.no-ip.org/projects/css_compressor">Robson CSS Compressor</a>.</li></ul><h2>robots.txt</h2><p><img
class="aligncenter size-full wp-image-620" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/robots-txt-ferramentas-recursos-desenvolvimento-web.gif" alt="Ferramentas e recursos para desenvolvimento web: gerador robots.txt" width="500" height="100" /></p><p>Saber quais partes do site ser&atilde;o disponibilizadas para indexa&ccedil;&atilde;o nos mecanismos de busca e quais ser&atilde;o bloqueadas &eacute; parte fundamental para uma estrat&eacute;gia de SEO funcionar. Para facilitar o trabalho, conferir algumas ferramentas para trabalho com robots.txt pode ser interessante.</p><ul><li><a
href="http://www.evildemo.com/robots_txt_generator.php">Evil Demo Robots.txt Generator</a>;</li><li><a
href="http://marketingdebusca.com.br/robots-txt/">Gerador de Robots.txt</a>;</li><li><a
href="http://pixelfolk.net/tools/robots">Pixelfolk  Robots.txt Generator</a>;</li><li><a
href="http://www.mcanerin.com/EN/search-engine/robots-txt.asp">Robot Control Code Generation Tool</a>;</li><li><a
href="http://www.clickability.co.uk/robotstxt.html">Robots.txt Builder</a></li><li><a
href="http://www.invision-graphics.com/robotstxt_generator.html">Robots.txt Generator Tool</a>;</li><li><a
href="http://tools.seobook.com/robots-txt/generator/">SEOTools Robots.txt File Generator</a>;</li><li><a
href="http://www.seo-watch.com/submitter/robot/agent.php">SEO-watch. Robots.txt Generator</a>;</li><li><a
href="http://www.sitemaps.org/protocol.php">Sitemaps XML format</a>;</li><li><a
href="http://www.yonego.nl/tools/robot-txt-generator.html">Yonego Robots.txt generator</a>;</li></ul><h2>Favicons</h2><p
style="text-align: center;"><img
class="aligncenter size-full wp-image-616" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/favicon-gerador-ferramentas-recursos-desenvolvimento-web.jpg" alt="Ferramentas e recursos para desenvolvimento web: gerador favicon" width="500" height="100" /></p><p>Para trabalhos de constru&ccedil;&atilde;o de marca, at&eacute; mesmo detalhes como os favicons s&atilde;o importantes! Se seu site ainda n&atilde;o tem um favicon, n&atilde;o perca tempo e crie agora mesmo!</p><ul><li><a
href="http://www.256pixels.com/">256 pixels</a>;</li><li><a
href="http://favicon2dots.com/">favicon2dots</a>;</li><li><a
href="http://www.chami.com/html-kit/services/favicon/">FavIcon from Pics</a>;</li><li><a
href="http://www.favicon.cc/">favicon.ico Generator</a>;</li><li><a
href="http://www.favicongenerator.com/">Favicon Generator</a>;</li><li><a
href="http://www.degraeve.com/favicon/">Favicon Generator DeGraeve.com</a>;</li><li><a
href="http://tools.dynamicdrive.com/favicon/">FavIcon Generator Dynamic Drive</a>;</li><li><a
href="http://www.favicon.co.uk/">Favicon Generator &amp; Gallery</a>;</li><li><a
href="http://shaheeilyas.com/favicon/">favicon maker v1</a>;</li><li><a
href="http://www.favikon.com/">favikon</a>;</li><li><a
href="http://www.genfavicon.com/">Genfavicon</a>;</li><li><a
href="http://favicon-generator.org/">Project Fondue Favicon Generator</a>.</li></ul><h2>Sitemaps</h2><p><img
class="aligncenter size-full wp-image-621" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/sitemap-gerador-ferramentas-recursos-desenvolvimento-web.gif" alt="Ferramentas e recursos para desenvolvimento web: gerador sitemap xml" width="500" height="100" /></p><p>Sitemaps s&atilde;o fundamentais para uma indexa&ccedil;&atilde;o eficiente nos mecanismos de busca. Ajude o trabalho deles e eles ajudam o seu, essa &eacute; a regra. E, se voc&ecirc; tem d&uacute;vidas de como criar um sitemap para seu site, essas ferramentas certamente vem em boa hora.</p><ul><li><a
href="http://xmlsitemap.com/create-sitemap/">Create an XML Sitemap</a>;</li><li><a
href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/">Google (XML) Sitemaps Generator for WordPress</a>;</li><li><a
href="http://www.web-site-map.com/">Online XML Sitemap Generator Free Online</a>;</li><li><a
href="http://www.addme.com/ror-sitemap-generator.htm">Google XML Sitemap Generator</a>;</li><li><a
href="http://sitemapdoc.com/Default.aspx">SitemapDoc &#8211; Google Sitemap Generator and Editor</a>;</li><li><a
href="http://www.xml-sitemaps.com/">XML Sitemaps Generator</a></li></ul><h2>Heatmaps e Gravadores de Tela</h2><p><img
class="aligncenter size-full wp-image-625" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/heatmap-gerador-ferramentas-recursos-desenvolvimento-web.jpg" alt="Ferramentas e recursos para desenvolvimento web: heatmaps e gravadores de tela" width="500" height="100" /></p><p>Heatmaps (ou Mapas de Calor) e Gravadores de Tela s&atilde;o excelentes ferramentas para an&aacute;lise de usabilidade. Atrav&eacute;s de resultados de an&aacute;lises de mapas de calor, &eacute; poss&iacute;vel aprimorar toda a estrutura de um web site para melhor.</p><ul><li><a
href="http://clickdensity.com/">clickdensity</a></li><li><a
href="http://www.labsmedia.com/clickheat/index.html">ClickHeat</a></li><li><a
href="http://www.clicktale.com/">ClickTale</a></li><li><a
href="http://www.crazyegg.com/">Crazy Egg</a></li><li><a
href="http://mouseflow.com/">Mouseflow</a></li></ul><h2>Plugins Firefox</h2><p><img
class="aligncenter size-full wp-image-617" src="http://desenvolvimentoparaweb.com/wp-content/uploads/2010/05/firefox-plugins-ferramentas-recursos-desenvolvimento-web.jpg" alt="Ferramentas e recursos para desenvolvimento web: plugins Firefox" width="500" height="100" /></p><p>Usando alguns plugins excelentes para Firefox, o desenvolvimento web se torna ainda mais prazeroso e divertido! Confira os principais e essenciais plugins para auxiliar no desenvolvimento para web.</p><ul><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/271">ColorZilla</a></li><li><a
href="https://addons.mozilla.org/pt-br/firefox/addon/css-reloader/">CSS Reloader</a></li><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/1843">Firebug</a></li><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/5648">FireShot</a></li><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/684">FireFTP</a></li><li><a
href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a></li><li><a
href="http://code.google.com/intl/pt-BR/speed/page-speed/">Page Speed</a></li><li><a
href="http://tools.seobook.com/firefox/seo-for-firefox.html">SEO for Firefox</a></li><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/60">Web Developer</a></li><li><a
href="https://addons.mozilla.org/pt-BR/firefox/addon/5369">YSlow</a></li></ul><div
id="_mcePaste" style="position: absolute; left: -10000px; top: 831px; width: 1px; height: 1px; overflow: hidden;">Robots.txt Generator Too</div><h3  class="related_post_title">Artigos Relacionados</h3><ul
class="related_post"><li><a
href="http://desenvolvimentoparaweb.com/jquery/otimizar-codigos-jquery-aumentar-performance-front-end/" title="Como otimizar códigos jQuery e aumentar a performance do front-end">Como otimizar códigos jQuery e aumentar a performance do front-end</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/5-dicas-para-temas-wordpress-melhores/" title="5 dicas para temas WordPress melhores">5 dicas para temas WordPress melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/design/7-ferramentas-para-web-designs-melhores/" title="7 ferramentas para web designs melhores">7 ferramentas para web designs melhores</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/8-dicas-fazer-codigos-melhores-jquery/" title="8 dicas para fazer códigos melhores com jQuery">8 dicas para fazer códigos melhores com jQuery</a></li><li><a
href="http://desenvolvimentoparaweb.com/wordpress/truques-de-configuracao-do-wordpress/" title="Truques de configuração do WordPress">Truques de configuração do WordPress</a></li><li><a
href="http://desenvolvimentoparaweb.com/usabilidade/pergunte-se-a-si-mesmo-questoes-para-desenvolver-um-bom-site/" title="Pergunte-se a si mesmo: questões para desenvolver um bom site">Pergunte-se a si mesmo: questões para desenvolver um bom site</a></li><li><a
href="http://desenvolvimentoparaweb.com/php/dicas-para-otimizar-codigos-php/" title="Dicas para otimizar códigos PHP">Dicas para otimizar códigos PHP</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/como-fazer-loading-site-conteudos/" title="Como fazer loading em conteúdos do site">Como fazer loading em conteúdos do site</a></li><li><a
href="http://desenvolvimentoparaweb.com/jquery/melhorando-interacao-formularios-busca/" title="Melhorando a interação em formulários de busca">Melhorando a interação em formulários de busca</a></li><li><a
href="http://desenvolvimentoparaweb.com/xhtml/textarea-dicas-truques-textarea/" title="Textarea: dicas e truques que você sempre quis saber">Textarea: dicas e truques que você sempre quis saber</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/WB3R1B6dHjvoMHytwQVzGEHQPJA/0/da"><img src="http://feedads.g.doubleclick.net/~a/WB3R1B6dHjvoMHytwQVzGEHQPJA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WB3R1B6dHjvoMHytwQVzGEHQPJA/1/da"><img src="http://feedads.g.doubleclick.net/~a/WB3R1B6dHjvoMHytwQVzGEHQPJA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=YZedi_n9bos:O5SrS7qXyts:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=YZedi_n9bos:O5SrS7qXyts:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=YZedi_n9bos:O5SrS7qXyts:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=YZedi_n9bos:O5SrS7qXyts:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?a=YZedi_n9bos:O5SrS7qXyts:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/desenvolvimentoparaweb?i=YZedi_n9bos:O5SrS7qXyts:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/desenvolvimentoparaweb/~4/YZedi_n9bos" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/feed/</wfw:commentRss> <slash:comments>19</slash:comments> <feedburner:origLink>http://desenvolvimentoparaweb.com/indicacoes/ferramentas-e-recursos-para-desenvolvimento-web/</feedburner:origLink></item> </channel> </rss><!-- Dynamic page generated in 4.324 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-01-31 16:08:29 --><!-- Compression = gzip -->

