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

<channel>
	<title>Leandro Garcia &#187; redução de peso</title>
	<atom:link href="http://www.leandrogarcia.com/blog/tag/reducao-de-peso/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leandrogarcia.com</link>
	<description></description>
	<lastBuildDate>Wed, 11 Jan 2012 13:31:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Yslow (Porque está devagar) &#8211; Como medir performance de carregamento das páginas&#8230;</title>
		<link>http://www.leandrogarcia.com/blog/yslow-porque-esta-devagar-como-medir-performance-de-carregamento-das-paginas/</link>
		<comments>http://www.leandrogarcia.com/blog/yslow-porque-esta-devagar-como-medir-performance-de-carregamento-das-paginas/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 19:43:36 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Complementos do Firefox]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[redução de peso]]></category>
		<category><![CDATA[redução do tamanho]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=75</guid>
		<description><![CDATA[Volto eu aqui para escrever sobre performance de websites.
No mundo atual, as pessoas tem cada vez menos tempo e paciência para esperar por alguma coisa, muito menos se o que devem esperar é uma página ser carregada. Motivo este pelo qual nós, desenvolvedores para internet, devemos pensar na praticidade e velocidade que a página é [...]]]></description>
			<content:encoded><![CDATA[<p>Volto eu aqui para escrever sobre performance de websites.</p>
<p>No mundo atual, as pessoas tem cada vez menos tempo e paciência para esperar por alguma coisa, muito menos se o que devem esperar é uma página ser carregada. Motivo este pelo qual nós, desenvolvedores para internet, devemos pensar na praticidade e velocidade que a página é carregada pelo usuário.</p>
<p>Existem algumas práticas que podem fazer com que seu código mais rapidamente carregado:</p>
<p><strong>Diminua a quantidade de requisições http.</strong></p>
<p>Em cada requisição que um site faz ao servidor, seja qual for (CSS, JS, Imaem, etc), há um trafego de informações, ou seja, sua página envia uma requisição e depois recebe a resposta do servidor, quanto menos requisições você fizer, menor será esse trafego, logo, mais rápido seu site carregará;</p>
<p>Você pode diminuir a rquisição de imagens background através de CSS sprites, já expliquei como fazê-los <a title="CSS Sprites" href="http://www.leandrogarcia.com/blog/css-sprites-a-arte-de-posicionar-imagens/" target="_blank">neste post</a>.</p>
<p>Utilizar o menor número possível de arquivos CSSs, O ideal é usar apenas um, eventualmente um segundo, mas evitar o terceiro, o quarto a todo custo.</p>
<p>Se possível utilizar apenas um arquivo JS.</p>
<p><strong>Cachear a página ou Header Expires</strong></p>
<p>A inconveniência deste é que ele é server-side, ou seja, é feita através do servidor, mas serve para guardar na memória do usuário os arquivos das páginas que ele visitou, ou seja, um re-acesso ao site seria bem mais rápido.</p>
<p><strong>Compressão de componentes (Gzip Components)</strong></p>
<p>Esta é uma outra técnica de redução server-side. Com ela, o servidor entende que deve comprimir (ou &#8220;zipar&#8221;) os código, os CSSs os JSs e, inclusive o HTML.</p>
<p><strong>Colocar as folhas de estilo no Header</strong></p>
<p>Uma outra maneira eficaz de ganhar tempo no carregamento das páginas é, além de usar uma única folha de estilos, chamá-la de um arquivo externo e através da tag link posicionada dentro do header</p>
<p><strong>Colocar os Scripts na parte inferior<br />
</strong></p>
<p>O ideal é colocar os scripts logo antes da tag &lt;/body&gt;, pois desta a página é carregada mais rapidamente. Quando o script está no header, a página primeiro carrega o script depois as demais informações, agora quando esle está posicionado abaixo, a página tem toda a informação carregado e só após isso os scripts são carregados.</p>
<p><strong>Evite expressões em CSSs</strong></p>
<p>Embora existam, as expressões em CSS não são a maneira mais eficaz de criar o seu layout, pois exigem demasiado tempo para serem entendidas pelos navegadores.</p>
<pre><em>ex. background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );</em></pre>
<p><strong>Folhas de Estilo (CSS) e Scripts (JS) externo</strong></p>
<p>Evite colocar estilos e scripts em qualquer lugar no HTML, prefira sempre chama-los através de um arquivo externo. CSSs e JSs, são geralmente caheados pelo browser, o que significa que em uma próxima vista o usuário já terá esses arquivos preveamente carregados.</p>
<p><strong>Otimize seus CSSs e JSs.</strong></p>
<p>Quanto menor for seus códigos, menor tamanho eles terão, logo, mais rápido serão carregado.</p>
<p><a title="Redução do peso nas páginas" href="http://www.leandrogarcia.com/blog/a-importancia-da-reducao-do-peso-das-paginas-e-afins/" target="_blank">Neste link</a>, eu escrevi como se pode otimizar os códigos CSSs</p>
<p><strong>Evite redirecionamentos</strong></p>
<p>Evite ao máximo que suas páginas redirecionem para uma outra, pois desta maneira seu usuário terá que carregar duas ou mais páginas ao invés de uma.</p>
<p><strong>Remova scripts duplicados</strong></p>
<p>Remova todos os scripts duplicados, afinal, não há a necessidade de se carregar duas vezes a mesma coisa.</p>
<p><strong>Reduza o número de DOMs</strong></p>
<p>Reduza ao máximo as &#8220;firulas&#8221; via DOM do seu código.</p>
<p><strong>Iframes</strong></p>
<p>Se necesário for utilizá-los, utilize o menos possível, pois um ifram,e é uma outra página a ser carregada.</p>
<p><strong>Escolha &lt;link&gt; ao invés de @import</strong></p>
<p>Há duas maneiras de se carregar uma folha de estilo externa, através das tags &lt;link&gt; e @import. Prefira sempre a &lt;link&gt;, pois o @import se comporta da mesma maneira como se você colocasse o &lt;link&gt; lá embaixo.</p>
<p>E tem várias outras maneiras.</p>
<p>O Yahoo, disponibiliza um link onde eles explicam maneiras de se melhorar a performance. Além dessas que eu listei acima, há algumas outras. O line é <a href="http://developer.yahoo.com/performance/rules.html" target="_blank">este</a>.</p>
<p><strong>Como verificar como está  o carregamento de meu site?</strong></p>
<p>Não sei dizer quantas maneiras há para se fazer isso, a única que eu conheço, e acredito que a mais eficaz, é o <strong>YSLOW</strong> (Uái islou)  (Porque está devagar).</p>
<p>O YSLOW, é um complemento para o Firefox que pode ser encontrado <a title="YSLOW" href="https://addons.mozilla.org/pt-BR/firefox/addon/5369" target="_blank">neste link</a>.</p>
<p>No Próximo Post eu vou explicar como funciona o Yslow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/yslow-porque-esta-devagar-como-medir-performance-de-carregamento-das-paginas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Otimizando o JS. Diminuir o uso do getElementById</title>
		<link>http://www.leandrogarcia.com/blog/otimizando-o-js-diminuir-o-uso-do-getelementbyid/</link>
		<comments>http://www.leandrogarcia.com/blog/otimizando-o-js-diminuir-o-uso-do-getelementbyid/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 18:43:08 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[otimizado]]></category>
		<category><![CDATA[redução de peso]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=74</guid>
		<description><![CDATA[Anteriormente, eu escrevi a respeito de otimização do css a fim de reduzir tempo de carregamento das páginas e tráfego.
Dando sequência, vamos otimizar o JS.
&#8230;
Quando estamos trabalhando em um grande projeto, é comum termos que utlizar diversas vezes a sintaxe getElementById. Porém, ao invés de para cada situação escrevermos toda a sintaxe, podemos criar uma [...]]]></description>
			<content:encoded><![CDATA[<p>Anteriormente, eu escrevi a respeito de otimização do css a fim de reduzir tempo de carregamento das páginas e tráfego.</p>
<p>Dando sequência, vamos otimizar o JS.</p>
<p>&#8230;</p>
<p>Quando estamos trabalhando em um grande projeto, é comum termos que utlizar diversas vezes a sintaxe getElementById. Porém, ao invés de para cada situação escrevermos toda a sintaxe, podemos criar uma pequena função para isso.</p>
<p>Como?</p>
<p><strong>Não Otimizado</strong></p>
<pre class="brush: jscript; title: ; notranslate">

function mudacor(id){

document.getElementById(id).style.color = '#990000';

}

function mudacorTexto(id){

document.getElementById(id).style.color = '#990000';

}

function mudacorspan(id){

document.getElementById(id).style.color = '#990000';

}
</pre>
<p><strong>Otimizado</strong></p>
<pre class="brush: jscript; title: ; notranslate">

function $(id){ return document.getElementById(id); }

function mudacor(id){

$(id).style.color = '#990000';

}

function mudacorTexto(id){

$(id).style.color = '#990000';

}

function mudacorspan(id){

$(id).style.color = '#990000';

}
</pre>
<p><strong>Explicando</strong></p>
<p>No exemplo acima, ao invés de eu escrever 3 vezes esta sintaxe, escrevi apenas uma. Em um projeto grande, é muito provável que você precise utilizar bem mais vezes essa sintaxe. Com esta simples função, podemos economizar muitos kbytes em trafego, pois reduzimos o tamanho do JS. Porém, não é apenas essa a vantagem, deixando o código mais enxuto, fica mais fácil de, posteriormente, o analisarmos para efetuarmos uma alteração ou correção.</p>
<p><a href="http://tutoriais.leandrogarcia.com/js_otimizado/JS_otimizajs.html" target="_blank">Clique aqui e veja</a></p>
<p><a href="http://tutoriais.leandrogarcia.com/js_otimizado/JS_otimizajs.zip" target="_blank">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/otimizando-o-js-diminuir-o-uso-do-getelementbyid/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Sprites, a arte de posicionar imagens</title>
		<link>http://www.leandrogarcia.com/blog/css-sprites-a-arte-de-posicionar-imagens/</link>
		<comments>http://www.leandrogarcia.com/blog/css-sprites-a-arte-de-posicionar-imagens/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 20:05:03 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[boas práticas]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[redução de peso]]></category>
		<category><![CDATA[redução do tamanho]]></category>
		<category><![CDATA[sprites]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=37</guid>
		<description><![CDATA[Dando continuidade na redução do peso das páginas, apresento à vocês uma técnica chamada: CSS Sprites!
Mas o que diabos é isso? É um novo refrigerante?
Não, não é refrigenrante é a arte de fazer uma unica requisição de imagem via CSS para diversos itens.
Como assim?
Vamos começar do básico.
Segundo o Wikipedia
Sprites were originally invented as a method [...]]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade na redução do peso das páginas, apresento à vocês uma técnica chamada: CSS Sprites!</p>
<p><strong>Mas o que diabos é isso? É um novo refrigerante?</strong></p>
<p>Não, não é refrigenrante é a arte de fazer uma unica requisição de imagem via CSS para diversos itens.</p>
<p><strong>Como assim?</strong></p>
<p>Vamos começar do básico.</p>
<p><strong>Segundo o Wikipedia</strong></p>
<blockquote><p>Sprites were originally invented as a method of quickly compositing several images together in two-dimensional <a title="Video game" href="http://en.wikipedia.org/wiki/Video_game">video games</a> using special hardware. As computer performance improved, this optimization became unnecessary and the term evolved to refer specifically to the two dimensional images themselves that were integrated into a scene. That is, figures generated by either custom hardware or by software alone were all referred to as sprites. As three-dimensional graphics became more prevalent, the term was used to describe a technique whereby flat images are seamlessly integrated into complicated three-dimensional scenes.</p></blockquote>
<p><strong>Em português</strong></p>
<blockquote><p>Sprites foram originalmente inventadas como um método de composição rápida de algumas imagens juntas em jogos de video game em 2d usando hardwares especiais. Como forma de otimizar o careggamento dos softwares&#8230;.</p></blockquote>
<p>Creio que Já é o sificiente!</p>
<p>Vamos ao que interessa. Os Sprites em CSS</p>
<p>A técnica é simples e você pode utilizar para quase todas as imagens do seu layout, desde que essas imagens não se repitam dentro de um mesmo elemento ou não tenham tamanho definido. Exemplo: em um background de página você não deverá utilizar o Sprites, pois não há um delimitador de altura e largura para a exibição desta imagem.</p>
<p>Vamos a um exemplo prático:</p>
<p>Façamos um menu.</p>
<p>Briefing: Quatro links, cada um com a cor de fundo diferente, cada um deve ter um degradê.</p>
<p><strong>1º Passo:</strong> <strong>A IMAGEM</strong></p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2008/09/bg.jpg"><img class="alignnone size-medium wp-image-38" title="bg" src="http://www.leandrogarcia.com/wp-content/uploads/2008/09/bg.jpg" alt="" width="1" height="120" /></a></p>
<p><strong>2º Passo: O HTML</strong></p>
<blockquote><p>&lt;ul class=&#8221;sprites&#8221;&gt;<br />
&lt;li class=&#8221;um&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;1&lt;/a&gt;&lt;/li&gt;<br />
&lt;li class=&#8221;dois&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;2&lt;/a&gt;&lt;/li&gt;<br />
&lt;li class=&#8221;tres&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;3&lt;/a&gt;&lt;/li&gt;<br />
&lt;li class=&#8221;quatro&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;4&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p></blockquote>
<p><strong>3º Passo: O CSS</strong></p>
<blockquote><p>*{list-style:none}<br />
.sprites li{float:left; text-align:center; width:50px; height:30px; background:url(http://tutoriais.leandrogarcia.com/sprites/images/sprites.jpg) repeat-x}</p>
<p>.sprites li.um{background-position: 0 0}</p>
<p>.sprites li.dois{background-position: -30px 0x}</p>
<p>.sprites li.tres{background-position: 0 -60px}</p>
<p>.sprites li.quatro{background-position: 0 -90px}</p>
<p>.sprites li a{color:#000;font-weight:bold}</p></blockquote>
<p><strong>Resultado</strong></p>
<p><!-- .sprites li{float:left; text-align:center; width:50px; height:30px; background:url(http://tutoriais.leandrogarcia.com/sprites/images/sprites.jpg) repeat-x;list-style:none}.sprites li.um{background-position: 0 0}.sprites li.dois{background-position: 0 -30px}.sprites li.tres{background-position: 0 -60px}.sprites li.quatro{background-position: 0 -90px}.sprites li a{color:#000;font-weight:bold} --></p>
<ul class="sprites">
<li class="um"><a href="#">1</a></li>
<li class="dois"><a href="#">2</a></li>
<li class="tres"><a href="#">3</a></li>
<li class="quatro"><a href="#">4</a></li>
</ul>
<p><br class="clear" /><br />
Assim Conseguimos um layout, onde cada um dos itens do menu tem uma imagem de fundo, mas não precisamos requisitar quatro imagens, apenas uma.</p>
<p><strong>Vantagens?</strong></p>
<p>Entre as vantagens, posso citar:</p>
<p>a facilidade de manutenção, uma vez que haverá menos imagens a alterar;</p>
<p>o menor número de requisições HTTP;</p>
<p>maior velocidade de carregamento, uma vez que haverá menos itens a requisitar.</p>
<p><strong>Pra finalizar</strong></p>
<p>Ao utilizar o sprites, nós possíbilitamos ao usuário uma maior velocidade no carregamento. Uma página carregada mais rápido, deixa o usuário mais feliz, um usuário mais feliz, tende a voltar mais vezes, desde que o conteúdo seja relevante</p>
<p>Veja em funcionamento: <a href="http://tutoriais.leandrogarcia.com/sprites/sprites.html" target="_blank">link</a></p>
<p>Download: <a href="http://tutoriais.leandrogarcia.com/sprites/sprites.zip">Sprites</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/css-sprites-a-arte-de-posicionar-imagens/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

