<?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; Praticas</title>
	<atom:link href="http://www.leandrogarcia.com/blog/category/praticas/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>Otimização de Script &#8211; Utilize Switch à if else</title>
		<link>http://www.leandrogarcia.com/blog/otimizacao-de-script-utilize-switch-a-if-else/</link>
		<comments>http://www.leandrogarcia.com/blog/otimizacao-de-script-utilize-switch-a-if-else/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 20:37:04 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Otimização]]></category>
		<category><![CDATA[Praticas]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=469</guid>
		<description><![CDATA[Olá, há tempos li em um livro da oreilly sobre otimização que devemos preferir o uso de switch à if else sempre que possível. Comentei isso com o @gserrano tempos atrás e ele fez um teste, está no blog dele. Dêem uma olhada vale a pena.
http://andafter.org/blogs/odesenvolvedor/publicacoes/switch-no-javascript.html
]]></description>
			<content:encoded><![CDATA[<p>Olá, há tempos li em um livro da oreilly sobre otimização que devemos preferir o uso de switch à if else sempre que possível. Comentei isso com o <a href="http://twitter.com/gserrano">@gserrano</a> tempos atrás e ele fez um teste, está no <a href="http://andafter.org/blogs/odesenvolvedor/publicacoes/switch-no-javascript.html">blog</a> dele. Dêem uma olhada vale a pena.</p>
<p><a href="http://andafter.org/blogs/odesenvolvedor/publicacoes/switch-no-javascript.html">http://andafter.org/blogs/odesenvolvedor/publicacoes/switch-no-javascript.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/otimizacao-de-script-utilize-switch-a-if-else/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Sprites</title>
		<link>http://www.leandrogarcia.com/blog/image-sprites/</link>
		<comments>http://www.leandrogarcia.com/blog/image-sprites/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 21:48:26 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[boas práticas]]></category>
		<category><![CDATA[sprites]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=458</guid>
		<description><![CDATA[Desenvolver o front-end de um site requer que além de termos conhecimento das linguagens  HTML, Javascript, etc, também conheçamos técnicas para otimizar a carregação do site.
Já escrevi alguns posts sobre otimização de sites, usando CSS sprites ou diminuindo código, nesta toada apresento-lhes o image sprites.
O IMG sprite tem o mesmo funcionamento do CSS sprites, a diferença [...]]]></description>
			<content:encoded><![CDATA[<p>Desenvolver o front-end de um site requer que além de termos conhecimento das linguagens  HTML, Javascript, etc, também conheçamos técnicas para otimizar a carregação do site.</p>
<p>Já escrevi alguns posts sobre otimização de sites, usando CSS <a title="CSS Sprites, a arte de posicionar imagens" href="http://www.leandrogarcia.com/blog/css-sprites-a-arte-de-posicionar-imagens/">sprites</a> ou<a title="A importância da redução do peso das páginas" href="http://www.leandrogarcia.com/blog/a-importancia-da-reducao-do-peso-das-paginas-e-afins/"> diminuindo código</a>, nesta toada apresento-lhes o image sprites.</p>
<p>O IMG sprite tem o mesmo funcionamento do CSS sprites, a diferença é que usado com a tag IMG a imagem é carregada no HTML e não no CSS, que para performance muda em&#8230; Nada ou muito pouco, no entanto, é bem interessante de ser usado. Comumente usamos (quem usa) os css sprites trocando um conteúdo por uma imagem isso não é uma pratica muito apreciada pelo Google, além disso, essas imagens não aparecem nas impressões dos usuários.</p>
<p>Vamos fazer uma lista de botões de redes sociais como vemos em toda a internet. Um ao lado do outro, sem nada de diferente.</p>
<p><strong>Imagem</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png"><img class="alignnone size-full wp-image-462" title="botoes_redes_sociais" src="http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png" alt="" width="72" height="72" /></a></p>
<p><strong>HTML</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul class=&quot;compartilhamento&quot;&gt;
	&lt;li class=&quot;twitter&quot;&gt;
		&lt;a href=&quot;http://twitter.com/leandrogarcia&quot;&gt;
			&lt;img title=&quot;botoes_redes_sociais&quot; src=&quot;http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png&quot; alt=&quot;&quot; width=&quot;72&quot; height=&quot;72&quot; /&gt;
		&lt;/a&gt;
	&lt;/li&gt;
	&lt;li class=&quot;facebook&quot;&gt;
		&lt;a href=&quot;http://www.facebook.com/leandrooliveiragarcia&quot;&gt;
			&lt;img title=&quot;botoes_redes_sociais&quot; src=&quot;http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png&quot; alt=&quot;&quot; width=&quot;72&quot; height=&quot;72&quot; /&gt;
		&lt;/a&gt;
	&lt;/li&gt;
	&lt;li class=&quot;orkut&quot;&gt;
		&lt;a href=&quot;http://www.orkut.com.br/Main#Profile?uid=1629432921042186633&quot;&gt;
			&lt;img title=&quot;botoes_redes_sociais&quot; src=&quot;http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png&quot; alt=&quot;&quot; width=&quot;72&quot; height=&quot;72&quot; /&gt;
		&lt;/a&gt;
	&lt;/li&gt;
	&lt;li class=&quot;rss&quot;&gt;
		&lt;a href=&quot;http://www.leandrogarcia.com/feed/&quot;&gt;
			&lt;img title=&quot;botoes_redes_sociais&quot; src=&quot;http://www.leandrogarcia.com/wp-content/uploads/2011/09/botoes_redes_sociais.png&quot; alt=&quot;&quot; width=&quot;72&quot; height=&quot;72&quot; /&gt;
		&lt;/a&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p><strong>CSS</strong></p>
<pre class="brush: css; title: ; notranslate">
.compartilhamento li{float:left;width:34px;height:34px;overflow:hidden}
.compartilhamento li.twitter img{margin: 0 0}
.compartilhamento li.facebook img{margin: -36px 0 0}
.compartilhamento li.orkut img{margin: -37px -37px 0}
.compartilhamento li.rss img{margin: 0 -37px 0}
</pre>
<p><a href='http://www.leandrogarcia.com/wp-content/uploads/2011/09/teste.html'>Veja o exemplo</a></p>
<p>Trabalhar com o IMG sprite é tão simples quanto o CSS sprite.</p>
<p>Uma pratica interessante é mesclar os dois, ou seja, uma única imagem com as imagens de layout e aquela que tem papel efetivo na página, usando o css sprites para os elementos de layout e o img sprites para elementos com papel efetivo. Isto acarretará em duas requisições, mas a imagem já vai estar cacheada, de modo que para o usuário é como se fosse praticamente um único.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/image-sprites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Y! Smush.it &#8211; Otimização de imagem</title>
		<link>http://www.leandrogarcia.com/blog/y-smush-it-otimizacao-de-imagem/</link>
		<comments>http://www.leandrogarcia.com/blog/y-smush-it-otimizacao-de-imagem/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 17:35:51 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Otimização]]></category>
		<category><![CDATA[Praticas]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=459</guid>
		<description><![CDATA[Tempos atrás eu havia escrito sobre otimização no desenvolvimento dos códigos. Isso é uma meta que eu corro atrás toda vez que desenvolvo um código front-end, sempre busco otimizar tudo ao máximo para agilizar no carregamento dos sites para melhorar a experiência do usuário e consequentemente melhorar a visitação, ranqueamento no google, etc.
Uma prática interessante [...]]]></description>
			<content:encoded><![CDATA[<p>Tempos atrás eu havia escrito sobre otimização no desenvolvimento dos códigos. Isso é uma meta que eu corro atrás toda vez que desenvolvo um código front-end, sempre busco otimizar tudo ao máximo para agilizar no carregamento dos sites para melhorar a experiência do usuário e consequentemente melhorar a visitação, ranqueamento no google, etc.</p>
<p>Uma prática interessante é otimizar as imagens que você usará no site, uma prática, é diminuir um pouco a qualidade da imagem no photoshop, diminuir cerca de 20% não costuma alterar a percepção do usuário em relação à imagem.</p>
<p>Recentemente fui apresentado ao <a href="http://www.smushit.com/ysmush.it/" target="_blank">Y! Smush.it</a>, que é um serviço do Yahoo que comprime a imagem retirando bytes desnecessário sem alterar a qualidade da imagem, como ele você consegue economizar em média uns 4% do tamanho da imagem. Claro que quatro porcento é pouco, mas se somarmos a isso, várias imagens ao site e milhares de acessos ao mês, temos uma montante considerável de tráfego em banda.</p>
<p>O Uso é extremamente simples, sobe o arquivo a a URL, ele comprime e passa o link para o download da imagem otimizada&#8230; Muito bom, recomendo.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/09/Captura_de_tela-Yahoo-Smush.it™-Chromium-1.png"><img class="alignnone size-medium wp-image-461" title="Captura_de_tela-Yahoo! Smush.it™ - Chromium-1" src="http://www.leandrogarcia.com/wp-content/uploads/2011/09/Captura_de_tela-Yahoo-Smush.it™-Chromium-1-300x171.png" alt="" width="300" height="171" /></a></p>
<p><a href="http://www.smushit.com/ysmush.it/" target="_blank">http://www.smushit.com/ysmush.it/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/y-smush-it-otimizacao-de-imagem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD &#8211; Teste Driven Development (Desenvolvimento Orientado à testes)</title>
		<link>http://www.leandrogarcia.com/blog/tdd-teste-driven-development-desenvolvimento-orientado-a-testes/</link>
		<comments>http://www.leandrogarcia.com/blog/tdd-teste-driven-development-desenvolvimento-orientado-a-testes/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 11:22:00 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Praticas]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=438</guid>
		<description><![CDATA[Uma das práticas mais mencionadas ultimamente é a de desenvolvimento orientado à testes ou TDD.
No TDD você primeiro escreve seu teste e depois o código, ou seja, você diz qual é o resultado esperado por determinada ação e programa em cima disso.
Qual a vantagem?
Uma vantagem interessante é que dessa forma você evita erros no código, [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das práticas mais mencionadas ultimamente é a de desenvolvimento orientado à testes ou <a href="http://pt.wikipedia.org/wiki/Test_Driven_Development">TDD.</a></p>
<p>No TDD você primeiro escreve seu teste e depois o código, ou seja, você diz qual é o resultado esperado por determinada ação e programa em cima disso.</p>
<p><strong>Qual a vantagem?</strong></p>
<p>Uma vantagem interessante é que dessa forma você evita erros no código, logo perde-se menos tempo caçando os bugs, mas na minha opinião a principal vantagem é ter todos as casos de teste escritos de forma que se você ao criar uma outra interação que provoque um erro em alguma coisa que você tenha programado anteriormente, você saberá exatamente onde está o erro.</p>
<p>Não é simples começar a programar orientado à testes, pois são necessárias quebras de paradigmas, além, de ter a sensação de que da maneira tradicional é mais fácil. mas essa sensação é a mesma sempre que começamos a trabalhar de maniera diferente, seja passando a usar padrões de desenvolvimento (<a href="http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software">Design Patterns</a>) como o MVC, iniciar com orientaçõa à objetos, usar um novo framework ou programar em uma nova linguagem. É sensação ocorre porque saimos da zona de conforto. Afinal, é muito mais fácil se aperfeiçoar no modelo que você segue do que seguir um outro caminho.</p>
<p>Existem formas de se programar orientado à testes, a mais comum e fácil, é usar um framework específico para isso, praticamente toda linguagem que trabalha com objetos tem um ou mais frameworks para efetuarem esse trabalho.</p>
<p>Em Javascript temos o <a href="http://www.jsunit.net/">JsUnit</a> e o <a href="http://jsmock.sourceforge.net/">JsMock</a>, entre outros. Ja em PHP tempos o <a href="http://simpletest.org/">SmipleTestPHP</a> e o <a href="https://github.com/sebastianbergmann/phpunit/">PHPUnit</a> pra Java tem o <a href="http://www.junit.org/">jUnit</a> entre tantas outras linguagens.</p>
<p>É bacana dar uma vasculhada na internet atrás de tutoriais a respeito de TDD pra linguagem que você prefere. Em breve devo postar algum sobre tdd em Javascript e PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/tdd-teste-driven-development-desenvolvimento-orientado-a-testes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controlando a versão do seu código com bitbucket</title>
		<link>http://www.leandrogarcia.com/blog/controlando-a-versao-do-seu-codigo-com-bitbucket/</link>
		<comments>http://www.leandrogarcia.com/blog/controlando-a-versao-do-seu-codigo-com-bitbucket/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 23:05:03 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[mercurial]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[versionamento]]></category>
		<category><![CDATA[bitbuckt]]></category>
		<category><![CDATA[tortoisehg]]></category>
		<category><![CDATA[versionar]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=403</guid>
		<description><![CDATA[

A poucos comentei aqui sobre a importancia do versionamento de código.  Mencionei na ocasião que iria explicar o funcionamento de uma opção.
Bom, recapitulando, existem diversas ferramentas para verionamento de código. Essa que vou mostrar é uma, que é free e eu achei muito boa.
Bom, a ferramenta é chamada bitbucket e usa a tecnologia mercurial para [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit2.png"><br />
</a></p>
<p>A poucos comentei aqui sobre a importancia do versionamento de código.  Mencionei na ocasião que iria explicar o funcionamento de uma opção.</p>
<p>Bom, recapitulando, existem diversas ferramentas para verionamento de código. Essa que vou mostrar é uma, que é free e eu achei muito boa.</p>
<p>Bom, a ferramenta é chamada bitbucket e usa a tecnologia mercurial para versionamento.  Existem algumas opções pagas e uma free para até 5 usuários. É com essa que vamos trabalhar.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit1.png"><img class="alignnone size-medium wp-image-404" title="bit1" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit1-300x229.png" alt="" width="300" height="229" /></a></p>
<p>Faça seu cadastro. Logue.</p>
<p>Note que na direita da tela tem uma parte chamada repositories.</p>
<p><a href="../wp-content/uploads/2011/01/bit2.png"><img title="bit2" src="../wp-content/uploads/2011/01/bit2.png" alt="" width="283" height="233" /></a></p>
<p>No meu caso, aparecem os que eu ja tenho, pra você que esta secadastrando agora  não deve aparecer nenum. Note o cadeado apos o coração e antes no nome, isso significa que você pode abruir seu código para o mundo ou não. No meu caso eu abri o app facebook futebol, que por um acaso ainda não tem quase nada e o Pakus framework que é um framework css que eu desenvolvi há algum tempo. Os demais estão fechados, pois não quero que ninguém tenha acesso.</p>
<p>Agora vamos criar um repositório.</p>
<p>Ao passar o mouse sobre o item de menu repositories, se abrirá um submenu e lá clique em create new repositorie.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit3.png"><img class="alignnone size-medium wp-image-406" title="bit3" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit3-240x300.png" alt="" width="240" height="300" /></a></p>
<p>Nessa tela você conta ao btbucket sobre o repositório que você quer criar. Nome, Descrição, website linguagem de programação, se é fechado para o mundo ou não, se deve monitorar cada postagem e se tem wiki.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit4.png"><img class="alignnone size-medium wp-image-407" title="bit4" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit4-287x300.png" alt="" width="287" height="300" /></a></p>
<p>Ao criar você tem uma tela com algumas informações e pronto. Agora temos que fazer as postagens ou commit.</p>
<p>Primeiro passo instaar um software para fazer isso. Indico o <a href="http://tortoisehg.bitbucket.org/" target="_blank">hgtortoise</a> que o ser instalado no windows permite que você facilmente manipule seus repositórios.</p>
<p>Vá à sua pasta d desenvolvimentoclique com o botão direito do mouse, menu Tortoise HG e depois clone.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit5.png"><img class="alignnone size-medium wp-image-408" title="bit5" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit5-300x134.png" alt="" width="300" height="134" /></a></p>
<p>Insira o caminho de origem do repositório.</p>
<p>https://bitbucket.org/leandrogarcia/pakus-framework</p>
<p>Esse é o do framework</p>
<p>E o destino, ou seja a pasta que vai receber o reporitório.</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit6.png"><img class="alignnone size-medium wp-image-409" title="bit6" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit6-300x167.png" alt="" width="300" height="167" /></a></p>
<p>Com isso você vai receber a última versão do código do repositório, no caso nada.</p>
<p>Agora crie seus código.</p>
<p>Para submeter o código, selecione o arquivo(s). Botão direito. TortoiseHg. AddFiles</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit7.png"><img class="alignnone size-medium wp-image-410" title="bit7" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit7-300x71.png" alt="" width="300" height="71" /></a></p>
<p>Note que os arquivos que serão submetidos receberão um icone de mais</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit8.png"><img class="alignnone size-full wp-image-411" title="bit8" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit8.png" alt="" width="102" height="26" /></a></p>
<p>em seguida, botão direito, HG Commit</p>
<p><a href="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit9.png"><img class="alignnone size-medium wp-image-412" title="bit9" src="http://www.leandrogarcia.com/wp-content/uploads/2011/01/bit9-300x57.png" alt="" width="300" height="57" /></a></p>
<p>Escrea quais alterações você fez, sem o texto, nõa é possível efetuar o commit. Depois consolidar(commit) e pronto</p>
<p>Aproveitem</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/controlando-a-versao-do-seu-codigo-com-bitbucket/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>O que é e para que serve um DOCTYPE?</title>
		<link>http://www.leandrogarcia.com/blog/o-que-e-e-para-que-serve-um-doctype/</link>
		<comments>http://www.leandrogarcia.com/blog/o-que-e-e-para-que-serve-um-doctype/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 21:19:15 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Praticas]]></category>
		<category><![CDATA[doctype]]></category>
		<category><![CDATA[frameset]]></category>
		<category><![CDATA[padroes]]></category>
		<category><![CDATA[strict]]></category>
		<category><![CDATA[transitional]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=54</guid>
		<description><![CDATA[O que é?
O doctype é a maneira de você dizer para qualquer navegador como ele deve agir ao ler seu código HTML.
Uma estórinha&#8230;
Certa vez Joãozinho, programador web experiente e usuário de firefox, programou seu site vendo-o apenas no firefox. Ele já esperava que quando fosse abrir pelo Internet Explorer fosse acontecer alguns problemas de layout, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>O que é?</strong></p>
<p>O doctype é a maneira de você dizer para qualquer navegador como ele deve agir ao ler seu código HTML.</p>
<p><strong>Uma estórinha&#8230;</strong></p>
<blockquote><p>Certa vez Joãozinho, programador web experiente e usuário de firefox, programou seu site vendo-o apenas no firefox. Ele já esperava que quando fosse abrir pelo Internet Explorer fosse acontecer alguns problemas de layout, normal, porém o que ele viu deixou-o perplexo&#8230; Seu site, todo seu trabalho de dias e horas estava totalmente quebrado. Xingou a Microsoft por seu software. Resolveu abrir no Opera, no Safari, no Google Chrome, e&#8230; Tudo estranho. Joãozinho ficou desesperado, arrancando seus cabelos, mas como programador experiente que é, parou. Saiu, se acalmou e foi avaliar seu código. Seu primeiro passo foi validar seu código via W3C e para sua surpresa, o erro era simples, faltava o DOCTYPE.</p>
<p>Moral da estória&#8230; preste atenção no que você faz!</p></blockquote>
<p><strong>Por que a falta do DOCTYPE no site do João zinho causou tantos problemas?</strong></p>
<p>Porque cada browser tem um padrão próprio de renderizar o HTML sem DOCTYPE.</p>
<p><strong>Bela estória Garcia. Mas me diga uma coisa, Que tipos de DOCTYPES existem e onde colocá-los em meu código?</strong></p>
<p>Até onde sei são quatro tipos para cada compilação HTML (HTML 4.0, HTML 4,1, XHTML, etc).</p>
<p>Os DOCTYPES devem ser a primeira coisa que um browser lê em seu código HTMl, ou seja, na primeira linha.</p>
<p>Quais são eles?</p>
<p>Strict, Transitional e Frameset.</p>
<blockquote><p>XHTML STRICT</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;</p>
<p>O Strict é o &#8220;melhor&#8221; uma vez que ao dizer para um browser renderizar com ele, você está dizendo que seguirá rigorozamente os padrões.</p></blockquote>
<blockquote><p>XHTML Transitional</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p>Com este você diz ao Browser que seu código está em transição, não necessáriamente seguirá rigorozamente os padrões, mas não fará um &#8220;ninho de  ratos&#8221;</p></blockquote>
<blockquote><p>XHTML FRAMESET</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Frameset//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&#8221;&gt;</p>
<p>Já o Frameser, ser para renderizar os enfadonhos e arcáicos Frames.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/o-que-e-e-para-que-serve-um-doctype/feed/</wfw:commentRss>
		<slash:comments>4</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>
		<item>
		<title>Flash validado pelo W3C</title>
		<link>http://www.leandrogarcia.com/blog/flash-validado-pelo-w3c/</link>
		<comments>http://www.leandrogarcia.com/blog/flash-validado-pelo-w3c/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 16:45:41 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Praticas]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=25</guid>
		<description><![CDATA[Buenas, assiduos leitores de de vez em quando&#8230;.
Boa parte de quem desenvolve interface HTML e se preocupa com a validação do código já se deparou com um problema grave: Minha página precisa conter um arquivo em flash, um vídeo do You Tube, porém isso deixa o código impossível de ser validado. Não mais&#8230; Eu lhes [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas, assiduos leitores de de vez em quando&#8230;.</p>
<p>Boa parte de quem desenvolve interface HTML e se preocupa com a validação do código já se deparou com um problema grave: Minha página precisa conter um arquivo em flash, um vídeo do You Tube, porém isso deixa o código impossível de ser validado. Não mais&#8230; Eu lhes trago a solução pra isso.</p>
<p>Há duas maneiras de se fazer isso, um por Javascript, onde você inclue o código na página através de um innerHTML, ou através de um código mais suscinto. Abaixo mostro as três maneiras de se por o código.</p>
<p><strong>A gerada pelo flash e o Youtube, porém errada.</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;object&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/izSOrOmxRgE&quot;&gt;&lt;/param&gt;
&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt; &lt;/param&gt;
&lt;embed src=&quot;http://www.youtube.com/v/izSOrOmxRgE&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;390&quot; height=&quot;321&quot;&gt; &lt;/embed&gt;
&lt;/object&gt;
</pre>
<p><strong>A Gerada por innerHTML</strong></p>
<pre class="brush: jscript; title: ; notranslate">
function iniciaFlash(){
var flash = “&lt;object id=’imgflash’ width=’514′ height=’250′ align=’middle’ codebase=’http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0′ classid=’clsid:d27cdb6e-ae6d-11cf-96b8-444553540000′&gt;”+
“        &lt;param value=’sameDomain’ name=’allowScriptAccess’/&gt;”+
“        &lt;param value=’images/imgflash.swf’ name=’movie’/&gt;”+
“        &lt;param value=’high’ name=’quality’/&gt;”+
“        &lt;param value=’#324b2e’ name=’bgcolor’/&gt;”+
“        &lt;param value=’transparent’ name=’wmode’/&gt;”+
“        &lt;embed width=’514′ height=’250′ align=’middle’ pluginspage=’http://www.macromedia.com/go/getflashplayer’ type=’application/x-shockwave-flash’ allowscriptaccess=’sameDomain’ name=’imgflash’ bgcolor=’#324b2e’ quality=’high’ src=’images/imgflash.swf’/&gt;”+
“&lt;/object&gt;”
document.getElementById(”imagensflash”).innerHTML = flash;
}
</pre>
<p>Dentro da função iniciaFlash, crio uma variável com os dados do flash e incluo dentro da div que tem o id &#8220;imagensflash&#8221;.</p>
<p>Após isso inicio a função dentro do onload do body.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;body onLoad=”iniciaFlash()”&gt;
</pre>
<p><strong>E a mais simples e talvez a melhor.</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;object type=”application/x-shockwave-flash” data=”arquivo.swf” width=”390” height=”321“&gt;
&lt;param name=”movie” value=”arquivo.swf” /&gt;
&lt;/object&gt;
</pre>
<p>Agora você pode escolher a que melhor se encaixar no seu projeto.</p>
<p>Abraços e até o próximo Post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/flash-validado-pelo-w3c/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

