<?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>Klaus Paiva &#187; Navegadores</title>
	<atom:link href="http://blog.klaus.pro.br/tags/navegadores/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.klaus.pro.br</link>
	<description>Idéias e desventuras de Klaus Paiva</description>
	<lastBuildDate>Mon, 12 Jul 2010 20:26:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>HTML 5</title>
		<link>http://blog.klaus.pro.br/2009/ler/html-5/index.html</link>
		<comments>http://blog.klaus.pro.br/2009/ler/html-5/index.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 12:16:39 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Vídeos]]></category>
		<category><![CDATA[Web Workers]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=375</guid>
		<description><![CDATA[Um vídeo bastante interessante que mostra vários recursos provenientes do HTML 5: canvas e SVG, &#60;video&#62;, geolocation, app cache e banco de dados local, e web workers. (aliás, eu já falei sobre web workers aqui no blog ) Introduction to HTML 5 from Brad Neuberg on Vimeo. Have fun! Vi aqui.]]></description>
			<content:encoded><![CDATA[<p>Um vídeo bastante interessante que mostra vários recursos provenientes do HTML 5: <strong>canvas e SVG, &lt;video&gt;, geolocation, app cache e banco de dados local, e web workers</strong>. (aliás, eu já falei sobre <a href="http://blog.klaus.pro.br/2009/ler/web-workers-threads-em-javascript/index.html">web workers</a> aqui no blog <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<div class="videos"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="375" src="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object>
<p><a href="http://vimeo.com/6691519">Introduction to HTML 5</a> from <a href="http://vimeo.com/user1005914">Brad Neuberg</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</div>
<p>Have fun! Vi <a href="http://speckyboy.com/2009/12/11/a-collection-of-html5-resources-and-tutorials/">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2009/ler/html-5/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3.5</title>
		<link>http://blog.klaus.pro.br/2009/ler/firefox-35/index.html</link>
		<comments>http://blog.klaus.pro.br/2009/ler/firefox-35/index.html#comments</comments>
		<pubDate>Tue, 30 Jun 2009 16:35:08 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Vídeos]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=313</guid>
		<description><![CDATA[Hoje saiu a versão 3.5 do Firefox. A lista de novidades é bastante extensa e empolgante. Dentre as novidades está o suporte para a tag &#60;video&#62;, para exibição nativa de vídeos num documento HTML. Se você quiser ver uma versão, digamos, alto nível das novidades, acesse esta página. Se você está interessado em ver as [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje saiu a <a href="http://www.getfirefox.com/">versão 3.5 do Firefox</a>. A lista de novidades é bastante extensa e empolgante. Dentre as novidades está o suporte para a <a href="http://www.mozilla.com/en-US/firefox/video/">tag &lt;video&gt;</a>, para exibição nativa de vídeos num documento HTML. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Se você quiser ver uma versão, digamos, alto nível das novidades, <a href="http://en-us.www.mozilla.com/en-US/firefox/3.5/releasenotes/#whatsnew2">acesse esta página</a>.</p>
<p>Se você está interessado em ver as novidades da versão 3.5 para nós, desenvolvedores, <a href="https://developer.mozilla.org/En/Firefox_3.5_for_developers">veja esta página</a>.</p>
<p>Fica a dica! <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2009/ler/firefox-35/index.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ligue os pontos!</title>
		<link>http://blog.klaus.pro.br/2009/ler/ligue-os-pontos/index.html</link>
		<comments>http://blog.klaus.pro.br/2009/ler/ligue-os-pontos/index.html#comments</comments>
		<pubDate>Thu, 14 May 2009 22:58:50 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Brincadeiras]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Protótipos]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=271</guid>
		<description><![CDATA[Tudo começou quando eu vi um jornal na rua e nele eu vi um passatempo que era bastante comum no jornal que meu pai comprava quando eu era criança. Esse passatempo consiste numa imagem /semi-?completa/ em que alguns pontos devem ser conectados para formar a imagem final. Diante dessa lembrança eu pensei em usar o [...]]]></description>
			<content:encoded><![CDATA[<p>Tudo começou quando eu vi um jornal na rua e nele eu vi um passatempo que era bastante comum no <a href="http://tapera.uol.com.br/">jornal que meu pai comprava quando eu era criança</a>. Esse passatempo consiste numa imagem /semi-?completa/ em que alguns pontos devem ser conectados para formar a imagem final.</p>
<p>Diante dessa lembrança eu pensei em usar o <a href="http://blog.klaus.pro.br/2009/ler/o-progresso-dos-novos-navegadores/index.html">objeto Canvas do HTML 5</a> que eu havia comentado anteriormente para, digamos, &#8220;reviver&#8221; essa brincadeira numa formato digital.</p>
<p>Procurei uma imagem para fazer os testes e acabei encontrando um <a href="http://passatemposdivertidos.blogspot.com/">site bem legal</a>, com várias imagens no estilo &#8220;ligue os pontos&#8221;. Dentre as várias opções, escolhi a imagem abaixo:</p>
<dl class="images">
<dt><a href="http://www.klaus.pro.br/projects/liga-pontos/"><img src="http://www.klaus.pro.br/projects/liga-pontos/pato.png" alt="Ligue os pontos" /></a></dt>
<dd>Ligue os pontos e ganhe um pato (ou cisne, ou ganso, ou marreco)</dd>
</dl>
<p>A partir daí comecei a pesquisar um pouco mais sobre os métodos de desenho disponíveis para codificar algo que permitisse desenhar umas linhas sobre a imagem acima. O <a href="https://developer.mozilla.org/en/Canvas_tutorial">tutorial de Canvas no MDC</a> foi bastante importante nesse sentido.</p>
<p>Bom, mas chega de enrolação e deixe-me mostrar esse tal &#8220;<strong><a href="http://www.klaus.pro.br/projects/liga-pontos/">ligue os pontos digital</a></strong>&#8220;. =) Basta sair clicando para ver o resultado. Há também alguns comandos de teclado disponíveis mas eu vou deixar que você descubra (espero) intuitivamente (ou por associação).</p>
<p>O código-fonte está bem simples  o que permite entender relativamente fácil o que foi feito. E falando sobre o código, vale lembrar que o código em si é mais uma prova de conceito do que um exemplo de código bem estruturado. Ah, e detalhe importante é a imagem no canto superior direito na página. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Pra ficar mais legal ainda, embora o tempo não me permita, seria legal colocar junto do código algum algoritmo para descobrir quando a imagem foi desenhada corretamente.</p>
<p>E por fim, o &#8220;liga pontos&#8221; acima foi testado (e funcionou) em Firefox 3.0.10, Opera 9.64, Safari 3.2.3 e Chrome 2.0.172. No IE 8, nativamente, não funciona. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><strong>Update</strong>! Enquanto eu &#8220;jogava&#8221; eu estive pensando e cheguei a conclusão que esse tipo de jogo pode ser interessante para pessoas que estão iniciando no mundo da informática, principalmente para adquirir destreza ao usar um <em>mouse</em>. Interessante!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2009/ler/ligue-os-pontos/index.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>O progresso dos novos navegadores</title>
		<link>http://blog.klaus.pro.br/2009/ler/o-progresso-dos-novos-navegadores/index.html</link>
		<comments>http://blog.klaus.pro.br/2009/ler/o-progresso-dos-novos-navegadores/index.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 22:54:58 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desempenho]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Vídeos]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=219</guid>
		<description><![CDATA[Este texto é baseado (uma nota mental pública e estruturada, digamos) na apresentação &#8220;Performance Improvements in Browsers&#8221; feita por &#8220;John Resig&#8220;, que é ninguém menos que o pai da famosa biblioteca jQuery. Abaixo está o vídeo com a apresentação feita (aproximadamente 1h) e na sequência algumas notas e comentários sobre os temas apresentados. Abas separadas [...]]]></description>
			<content:encoded><![CDATA[<p>Este texto é baseado (uma nota mental pública e estruturada, digamos) na apresentação &#8220;<a href="http://ejohn.org/blog/talk-performance-improvements-in-browsers/"><em>Performance Improvements in Browsers</em></a>&#8221; feita por &#8220;<a href="http://ejohn.org/">John Resig</a>&#8220;, que é ninguém menos que o pai da famosa biblioteca <a href="http://jquery.com/">jQuery</a>.</p>
<p>Abaixo está o <a href="http://www.youtube.com/watch?v=13-3VMzfU3Y">vídeo com a apresentação</a> feita (aproximadamente 1h) e na sequência algumas <strong>notas e comentários sobre os temas apresentados</strong>.</p>
<div class="videos"><object width="425" height="344" data="http://www.youtube.com/v/13-3VMzfU3Y&amp;hl=pt-br&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/13-3VMzfU3Y&amp;hl=pt-br&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></div>
<h3 class="subtitles">Abas separadas por processos</h3>
<p>Este é um fato que certamente você deve conhecer. Você está lá navegando tranquilamente com uma <strong>dezena (ou mais =) de abas abertas</strong>&#8230; Daí que você resolve acessar um site com um Javascript mal escrito, com uma animação em que o <a href="http://www.adobe.com/products/flashplayer/">Flash Player</a> se revolta e lá foi, o navegador inteiro congela e não resta outra opção senão matar o processo. Claro que a maioria dos navegadores traz opções para <strong>restaurar a seção anterior</strong> mas não deixa de ser bastante incômodo.</p>
<p>A separação das abas por processos permitiria <strong>matar (encerrar) apenas a aba problemática</strong>, mantendo as outras abas isoladas. Isso por si só já seria uma grande vantagem da separação por abas mas ainda há uma segunda vantagem também bastante interessante! =)</p>
<p>Com a separação em diversos processos o sistema operacional pode <strong>gerenciar melhor o processamento</strong>, alocando mais recursos para as partes onde é realmente necessário, sem congelar as outras partes do navegador.</p>
<p>Vale notar que essa divisão em processos distintos causa um aumento do consumo do memória sim mas, como a quantidade de memória disponível nos PCs atuais (mesmo para os &#8220;PCs de prateleira&#8221;) está deixando de ser um gargalo para o desempenho dos computadores, é de se esperar que os programas passem a fazer alocações maiores de memória. Mais ou menos como o princípio da <strong>lei da oferta e da demanda</strong>.</p>
<h3 class="subtitles">Linearização das instruções de funções</h3>
<p>O termo em inglês acho que permite um entendimento melhor: &#8220;<strong>&#8216;<a href="http://en.wikipedia.org/wiki/Inline_function">function inlining</a></strong>&#8220;. Essa é uma característica que, por exemplo, C++ possui. Usando essa propriedade o compilador pode trocar a chamada de uma função pelo corpo da função, fazendo com que a execução das instruções ocorra <strong>sem o <em>overhead</em> de chamar uma função</strong>.</p>
<p>Além disso, pelo código exibido nos <em>slides</em> parece que, diferentemente do C++, você não precisa dar uma dica para o compilador na hora de escrever a função indicando que a função é candidata ao &#8220;<em>inlining</em>&#8220;.</p>
<h3 class="subtitles">Rede</h3>
<p>Aqui vale destacar o <strong>aumento do número de <em>downloads</em> simultâneos para um mesmo domínio</strong>. Com o IE 7 ainda temos o limite de dois downloads mas, felizmente o IE 8 (beta) já tratá um <strong>limite três vezes maior</strong>, de <a href="http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-new.aspx#ajax">seis <em>downloads</em> simultâneos para o mesmo domínio</a>. A última versão dos demais navegadores já possui um valor de seis ou sete <em>downloads</em>.</p>
<p>Outro recurso bem legal, e este é uma boa ideia da Microsoft, é o <strong>atributo &#8220;defer&#8221; para a <em>tag</em> &lt;script&gt;</strong>. Esse atributo indica para o navegador que ele pode continuar a <strong>renderizar a página sem esperar o arquivo Javascript</strong> referenciado carregar. O atributo já funcionava no IE e vai funcionar nas novas versões do Firefox e Opera.</p>
<h3 class="subtitles">window.postMessage</h3>
<p>O método <strong>window.postMessage</strong> me chamou a atenção. Com ele será possível a <strong>comunicação entre páginas de domínios distintos</strong> de forma bem simples. O princípio é o seguinte: a página remetente da mensagem irá tentar enviar a mensagem para, por exemplo, um <em>iframe</em> destinatário. Este <em>iframe</em> irá verificar se o remetente é alguém que ele conhece para então aceitar a mensagem e executar alguma ação.</p>
<p>A página que receberá as mensagens pode &#8220;ouvir&#8221; os <strong>eventos de mensagens</strong> usando o tradicional método <a href="https://developer.mozilla.org/En/DOM/Element.addEventListener">addEventListener</a>. Verificando a propriedade <em>origin</em>, a página receptora pode <strong>descobrir pelo domínio se a mensagem está vindo de um destinatário conhecido ou não</strong>.</p>
<h3 class="subtitles">Ajax entre domínios diferentes</h3>
<p>Aquele sonho de fazer requisições Ajax entre os N domínios da sua aplicação está prestes a se realizar. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Adicionando um cabeçalho (<em>header</em>) na resposta da requisição Ajax é possível especificar uma origem (além do próprio domínio) de onde aquela requisição pode ser atendida com segurança. O nome deste cabeçalho é &#8220;<strong>Access-Control-Allow-Origin</strong>&#8221; e está <a href="https://developer.mozilla.org/En/HTTP_Access_Control">melhor descrito nesta página</a>.</p>
<h3 class="subtitles">document.querySelectorAll</h3>
<p>Se você já usou a jQuery sabe como <strong>é prático encontrar os elementos da página usando a sintaxe de CSS</strong>. Melhor ainda se encontrar esses elementos usando a sintaxe de CSS seja possível de ser <strong>feito usando um método nativo do navegador</strong>. É isso que o método <a href="https://developer.mozilla.org/En/DOM/Document.querySelectorAll">document.querySelectorAll</a> permitirá. O melhor de tudo é que as próximas versões do IE, Firefox, Opera e Safari já trarão este método disponível.</p>
<h3 class="subtitles">Visual e CSS</h3>
<p>Adoradas por 10 em cada 10 <em>webdesigners</em>, as <strong>bordas redondas vieram pra ficar</strong>. =) Apesar de os navegadores trazerem implementações com nomes diferentes, todas as implementações funcionam bem. Ou seja, juntando essas propriedades: -moz-border-radius, -webkit-border-radius, -khtml-border-radius e <a href="http://www.w3.org/TR/css3-background/#the-border-radius">border-radius</a> as bordas redondas saem com facilidade.</p>
<p><strong>Sombras também estarão disponíveis</strong>. Nesta página há vários <a href="http://maettig.com/code/css/text-shadow.html">exemplos de uso da propriedade text-shadow</a>.</p>
<p>Outro recurso que certamente vai ser muito usado (e provavelmente muito mal usado também <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) é a possibilidade de se usar <strong><a href="http://ejohn.org/apps/fontface/blok.html">fontes personalizadas na página</a></strong>. Por fontes personalizadas entenda fontes que não estão instaladas na sua máquina. Coisa que já era possível de se fazer no Flash, agora também com CSS.</p>
<p>Além disso, há uma série de <a href="http://www.the-art-of-web.com/css/css-animation/">animações</a> que estarão disponíveis, por enquanto, para Firefox e Safari.</p>
<h3 class="subtitles">Desenho</h3>
<p>O objeto Canvas permite a renderização de elementos numa superfície 2D usando retas, curvas, arcos e/ou círculos. No <a href="https://developer.mozilla.org/">MDC</a> tem um <a href="https://developer.mozilla.org/En/Canvas_tutorial">tutorial bem bacana sobre Canvas</a>. Até me arrisquei a fazer uma &#8220;arte&#8221;: =)</p>
<pre class="javascript"><code><span class="co1">// &lt;canvas id="draw-area" width="150" height="150"&gt;&lt;/canvas&gt; no HTML</span>
<span class="kw2">var</span> canvas = document.<span class="me1">getElementById</span><span class="br0">(</span> <span class="st0">"draw-area"</span> <span class="br0">)</span>;
<span class="kw1">if</span><span class="br0">(</span> !canvas.<span class="me1">getContext</span> <span class="br0">)</span>
<span class="br0">{</span>
  <span class="kw1">return</span>;
<span class="br0">}</span>
<span class="kw2">var</span> context = canvas.<span class="me1">getContext</span><span class="br0">(</span> <span class="st0">"2d"</span> <span class="br0">)</span>;

context.<span class="me1">beginPath</span><span class="br0">(</span><span class="br0">)</span>;
<span class="kw2">var</span> side = <span class="nu0">150</span>;
<span class="kw2">var</span> offset = <span class="nu0">-4</span>;
<span class="kw2">var</span> i = <span class="nu0">0</span>;
<span class="kw1">while</span><span class="br0">(</span> <span class="kw2">true</span> <span class="br0">)</span>
<span class="br0">{</span>
  <span class="kw1">if</span><span class="br0">(</span> i % <span class="nu0">4</span> == <span class="nu0">0</span> <span class="br0">)</span>
  <span class="br0">{</span>
    <span class="kw2">var</span> x = offset + <span class="nu0">4</span>;
    context.<span class="me1">lineTo</span><span class="br0">(</span> x, offset <span class="br0">)</span>;
    offset = x;
    <span class="kw1">if</span><span class="br0">(</span> offset + <span class="nu0">4</span> &gt; <span class="nu0">78</span> <span class="br0">)</span> <span class="co1">// hard-coded mesmo ;P</span>
    <span class="br0">{</span>
      <span class="kw1">break</span>;
    <span class="br0">}</span>
  <span class="br0">}</span>
  <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span> i % <span class="nu0">4</span> == <span class="nu0">1</span> <span class="br0">)</span>
  <span class="br0">{</span>
    context.<span class="me1">lineTo</span><span class="br0">(</span> offset, side - offset <span class="br0">)</span>;
  <span class="br0">}</span>
  <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span> i % <span class="nu0">4</span> == <span class="nu0">2</span> <span class="br0">)</span>
  <span class="br0">{</span>
    context.<span class="me1">lineTo</span><span class="br0">(</span> side - offset, side - offset <span class="br0">)</span>;
  <span class="br0">}</span>
  <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span> i % <span class="nu0">4</span> == <span class="nu0">3</span> <span class="br0">)</span>
  <span class="br0">{</span>
    context.<span class="me1">lineTo</span><span class="br0">(</span> side - offset, offset <span class="br0">)</span>;
  <span class="br0">}</span>
  i++;
<span class="br0">}</span>
<span class="co1">//context.closePath();</span>
context.<span class="me1">stroke</span><span class="br0">(</span><span class="br0">)</span>;</code></pre>
<p>Outro detalhe importante é que o Canvas permitirá também a <strong>inserção de vídeos dentro dele</strong>.</p>
<h3 class="subtitles">JSON nativo</h3>
<p>Atualmente, ao receber uma <em>string</em> em <a href="https://developer.mozilla.org/En/JSON">JSON</a> você precisa usar um <a href="https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval#section_6">eval</a> para recuperar o objeto original. <strong>O eval é conhecidamente lento</strong>, até pelo fato de ser um método genérico, mas era a melhor saída para se ter acesso às informações contidas na <em>string</em> JSON mas, isso vai mudar!</p>
<p>Agora teremos métodos nativos para codificação e decodificação no formato JSON. A única dúvida que me restou é sobre o nome dos métodos. Nos slides os métodos se chamam <strong>encode e decode</strong>, já na <a href="https://developer.mozilla.org/En/Using_JSON_in_Firefox">página do MDC</a> e no <a href="http://wiki.ecmascript.org/doku.php?id=es3.1:json_support">wiki do ECMAScript</a> os métodos se chamam <strong>parse e stringify</strong>, respectivamente.</p>
<h3 class="subtitles">E por fim&#8230;</h3>
<p>&#8230; fico na torcida pra que as novas versões desses navegadores tenham uma rápida adoção por parte dos usuários. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2009/ler/o-progresso-dos-novos-navegadores/index.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Firefox, Chrome, Internet Explorer, Opera&#8230; Ótimo!</title>
		<link>http://blog.klaus.pro.br/2008/ler/firefox-chrome-internet-explorer-opera-otimo/index.html</link>
		<comments>http://blog.klaus.pro.br/2008/ler/firefox-chrome-internet-explorer-opera-otimo/index.html#comments</comments>
		<pubDate>Wed, 10 Sep 2008 13:56:08 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=118</guid>
		<description><![CDATA[Claro, depende do ponto de vista. =) Mas em termos gerais eu acredito que essa nova edição da &#8220;guerra dos browsers&#8221; é muito bem-vinda e benéfica. Como interfaces do sistema operacional do futuro, penso que quanto mais os navegadores evoluírem, melhor. E nada melhor que concorrência para estimular o desenvolvimento e a inovação desse tipo [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.klaus.pro.br/wp-content/uploads/2008/09/browsers-firefox-ie-opera-chrome.jpg" alt="Montagem com os logos do Firefox, Internet Explorer, Opera e Chrome - Todos os direitos reservados aos seus devidos autores" /></p>
<p>Claro, depende do ponto de vista. =) Mas em termos gerais eu acredito que essa nova edição da &#8220;<a href="http://en.wikipedia.org/wiki/Browser_wars">guerra dos <em>browsers</em></a>&#8221; é muito bem-vinda e benéfica.</p>
<p>Como interfaces do sistema operacional do futuro, penso que quanto mais os navegadores evoluírem, melhor. E nada melhor que concorrência para estimular o desenvolvimento e a inovação desse tipo de aplicativo.</p>
<p>Com o lançamento do <a href="http://www.google.com/chrome">Google Chrome</a>, uma tema bastante interessante (ao menos pra mim) passou a ser mais discutido: <a href="http://ejohn.org/blog/javascript-performance-rundown/">performance de Javascript</a>. Quem desenvolve interfaces <em>web </em>hoje sabe que não raro são as vezes em que você acaba com o navegador bastante lento quando faz operações com os elementos (DOM) existentes na tela, isso pra citar apenas um dos casos.</p>
<p>E o que mais me deixa positivo sobre esse fato é: até a Microsoft está preocupada em melhorar o <a href="http://www.microsoft.com/windows/internet-explorer/beta/default.aspx">Internet Explorer 8</a> para não ficar em desvantagem nessa guerra dos <em>browsers</em>.</p>
<p>Com <em>browsers</em> melhores, mais rápidos e mais ricos em termos de recursos, haverá toda uma nova gama de possibilidades para desenvolvimento <em>web</em>. E vale dizer que isso não é bom só para nós, desenvolvedores, mas também para os usuários de Internet como um todo, que terão aplicações mais ricas, mais rápidas e mais úteis, tudo &#8220;independente&#8221; da plataforma do sistema operacional.</p>
<p>E enquanto a guerra dos <em>browsers</em> se mantiver dentro dos moldes atuais, pode ter certeza, só temos a ganhar. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2008/ler/firefox-chrome-internet-explorer-opera-otimo/index.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Estatísticas Taperás &#8211; Agosto de 2008</title>
		<link>http://blog.klaus.pro.br/2008/ler/estatisticas-taperas-agosto-de-2008/index.html</link>
		<comments>http://blog.klaus.pro.br/2008/ler/estatisticas-taperas-agosto-de-2008/index.html#comments</comments>
		<pubDate>Mon, 01 Sep 2008 20:47:05 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Estatísticas]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Taperás]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=113</guid>
		<description><![CDATA[Como alguns de vocês aqui já sabem, o Taperás é um &#8220;filho meu&#8221; (mas não só meu) na web. E diferente deste blog, as estatísticas de visitação do Taperás dão uma idéia legal sobre os usuários de Internet em termos de navegadores, resolução de tela, etc&#8230; Pensando nisso eu resolvi fazer uma breve compilação dessas [...]]]></description>
			<content:encoded><![CDATA[<p>Como alguns de vocês aqui já sabem, o <a href="http://www.taperas.com/">Taperás</a> é um &#8220;filho meu&#8221; (mas não <strong>só</strong> meu) na <em>web</em>. E diferente deste blog, as estatísticas de visitação do Taperás dão uma idéia legal sobre os usuários de Internet em termos de navegadores, resolução de tela, etc&#8230;</p>
<p>Pensando nisso eu resolvi fazer uma breve compilação dessas informações disponíveis no <a href="http://www.google.com/analytics/">Google Analytics</a> e publicar aqui. Minha idéia com isso é acompanhar essas informações e deixar aqui disponível para quem mais possa se interessar.</p>
<p>Bom, chega de blábláblá e vamos ao que interessa. Primeiro a estatísticas sobre <strong>navegadores</strong>: (você pode clicar nas imagens para visualizá-las em tamanho real)</p>
<dl class="images">
<dt><a class="thickbox" title="Estatísticas de navegadores - Taperás - Agosto de 2008" href="http://blog.i.klaus.pro.br/taperas-stats/200808/browsers.jpg"><img src="http://blog.i.klaus.pro.br/taperas-stats/200808/browsers-thumb.jpg" alt="" /></a></dt>
<dd>Estatísticas de navegadores &#8211; Taperás &#8211; Agosto de 2008</dd>
</dl>
<p>Como já era de se esperar, o Internet Explorer (IE) domina mais de 80% dos acessos, seguido pelo <a href="http://www.getfirefox.com/">Firefox</a> com quase 20%. E se tratando do IE é bom saber as versões usadas nos acessos.</p>
<dl class="images">
<dt><a class="thickbox" title="Estatísticas de navegadores, versões do IE - Taperás - Agosto de 2008" href="http://blog.i.klaus.pro.br/taperas-stats/200808/browsers-ie.jpg"><img src="http://blog.i.klaus.pro.br/taperas-stats/200808/browsers-ie-thumb.jpg" alt="" /></a></dt>
<dd>Estatísticas de navegadores, versões do IE &#8211; Taperás &#8211; Agosto de 2008</dd>
</dl>
<p>Infelizmente, o IE 7 responde apenas por metade dos acessos e o, horrível, IE 6 é responsável pela outra metade.</p>
<p>Outro parâmetro interessante é a <strong>resolução de tela</strong>:</p>
<dl class="images">
<dt><a class="thickbox" title="Estatísticas de resolução de tela - Taperás - Agosto de 2008" href="http://blog.i.klaus.pro.br/taperas-stats/200808/screen-resolutions.jpg"><img src="http://blog.i.klaus.pro.br/taperas-stats/200808/screen-resolutions-thumb.jpg" alt="" /></a></dt>
<dd>Estatísticas de resolução de tela &#8211; Taperás &#8211; Agosto de 2008</dd>
</dl>
<p>Mesmo o Taperás sendo um site acessado por um público <em>non-geek</em>, a resolução 1024&#215;768 é responsável por quase 60% dos acessos. E enquanto eu escrevia este texto fiquei pensando, qual será a resolução que o iPhone reporta? =)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2008/ler/estatisticas-taperas-agosto-de-2008/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Americanas.com: Status do seu pedido? Não se você usa Firefox</title>
		<link>http://blog.klaus.pro.br/2007/ler/americanas-com-status-do-seu-pedido-nao-para-o-firefox-2/index.html</link>
		<comments>http://blog.klaus.pro.br/2007/ler/americanas-com-status-do-seu-pedido-nao-para-o-firefox-2/index.html#comments</comments>
		<pubDate>Fri, 19 Oct 2007 20:47:32 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Americanas.com]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Submarino]]></category>

		<guid isPermaLink="false">http://wp.blog.klaus.pro.br/?p=56</guid>
		<description><![CDATA[Eu nunca fui muito fã de fazer compras na Americanas.com. Motivos? Bom, o site deles, na minha opinião, é desorganizado e eu já tive problemas para pagar uma compra que fiz (na ocasião, refiz a compra no Submarino). Eu estava procurando um fone de ouvido novo para usar aqui no trabalho. Fiz umas pesquisas e [...]]]></description>
			<content:encoded><![CDATA[<p>Eu nunca fui muito fã de fazer compras na <a rel="nofollow" href="http://americanas.com/">Americanas.com</a>. Motivos? Bom, o site deles, na minha opinião, é desorganizado e eu já tive problemas para pagar uma compra que fiz (na ocasião, refiz a compra no <a href="http://www.submarino.com.br/">Submarino</a>).</p>
<p>Eu estava procurando um fone de ouvido novo para usar aqui no trabalho. Fiz umas pesquisas e não achei o modelo que eu queria disponível no Submarino porém, achei-o na Americanas.</p>
<p>Como meu problema de pagamento (relatado acima) havia acontecido há mais de um ano, resolvi dar uma nova chance à Americanas.</p>
<h3 class="subtitles">A compra</h3>
<p>No processo de compra, para minha surpresa, não houve nenhum erro e tudo ocorreu conforme o esperado. Fiz o pagamento com cartão de crédito e logo depois o pagamento foi confirmado no meu e-mail.</p>
<p>Fiz a compra ontem e resolvi dar uma olhada hoje para ver se meu fone já havia sido postado. Foi aí que a Americanas me desapontou mais uma vez.</p>
<h3 class="subtitles">A visualização do status do pedido</h3>
<p>Lá vou eu, bem intencionado e humorado, acessar a área &#8220;Meus pedidos&#8221;. Faço meu <em>login</em> com sucesso e estou no &#8220;Painel de Controle&#8221;.</p>
<p>Clico em &#8220;Últimos Pedidos&#8221; para, assim espero, visualizar meus últimos pedidos. Para minha surpresa, vejo a seguinte tela: (clique para ampliar)</p>
<dl class="images">
<dt> <a href="http://blog.i.klaus.pro.br/americanas-firefox.png"><br />
<img src="http://blog.i.klaus.pro.br/americanas-firefox-thumb.jpg" alt="" /><br />
</a> </dt>
<dd> Administração da Americanas.com com problemas no Firefox </dd>
</dl>
<p>Como trabalho com o <a href="http://ubuntu.com/">Ubuntu</a>, acessei a página com o <a href="http://www.getfirefox.com/">Firefox</a>. Imaginei que algum CSS tinha dado problema na hora de carregar, resolvi navegar por mais alguns <em>links</em> e vi que alguns funcionavam, outros não.</p>
<p>Olhei para o lado e vi um PC rodando Windows dando sopa, resolvi acessar a página e ver o que acontecia. Acho que você já deve imaginar, certo? <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<dl class="images">
<dt> <a href="http://blog.i.klaus.pro.br/americanas-ie.png"><br />
<img src="http://blog.i.klaus.pro.br/americanas-ie-thumb.jpg" alt="" /><br />
</a> </dt>
<dd> Administração da Americanas.com plenamente funcional no IE </dd>
</dl>
<p>Pelo visto, para as telas que geram receita é importante que elas funcionem no Firefox, depois que a compra já foi feita, nem tanto&#8230; <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2007/ler/americanas-com-status-do-seu-pedido-nao-para-o-firefox-2/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
