Dica: Diminuindo o tempo de carregamento de uma página web através do download paralelo de arquivos

by Ricardo Oneda 22. novembro 2011 21:06

Na semana passada, o Cleber Dantas publicou em seu blog um post com uma dica bem interessante sobre o uso de cookie-free domains. Basicamente, a idéia é armazenar arquivos estáticos do site, como imagens, arquivos CSS e JavaScript, que não precisam ter acesso aos cookies, em um subdomínio diferente do site principal. Assim, quando o browser fizer as requisições desses arquivos, os cookies não serão trafegados e, consequentemente, economizaremos no consumo de banda de rede, tornando o processo mais rápido.

Além da vantagem citada no artigo do Cleber, essa abordagem possibilita outro ganho, que é paralelizar o download de arquivos que compõem uma página HTML, tornando seu carregamento mais rápido. O protocolo HTTP 1.1 especifica que os browsers devem permitir duas conexões concorrentes por hostname, no máximo. Ou seja, segundo a especificação, os browsers só poderiam fazer download de dois arquivos simultaneamente de um mesmo hostname. Apesar dessa especificação, a maioria dos browsers mais recentes estabelece valores padrões maiores para o número máximo de conexões e podem ser configurados para outros valores. De qualquer modo, existe um limite. Como uma página HTML normalmente é composta por mais arquivos (considere os arquivos de imagem, CSS, JavaScript, etc), se essa página e todos os recursos que a compõem estiverem em um mesmo hostname, quando se atinge esse limite de requisições simultâneas, o browser enfilera as requisições pendentes até que alguma requisição executada anteriormente termine, e assim possa realizar as demais requisições de forma sequencial.

Ao distribuirmos os arquivos estáticos em múltiplos subdomínios, o limite de conexões simultâneas do browser será aplicado a cada subdomínio, ou seja, se antes uma página e seus elementos ficavam armazenados em somente um hostname e o browser limitava a N conexões simultâneas, com o uso dessa técnica o número de requisições possíveis simultâneas passa a ser N multiplicado pelo número de subdomínios utilizados. Isso torna possível que mais arquivos sejam baixados em paralelo pelo browser, diminuindo assim a fila de requisições de arquivos e o tempo para carregamento da página e de todos seus recursos.

Apesar do ganho poder ser grande, deve-se tomar cuidado com o uso exagerado de subdomínios, pois múltiplas conexões concorrentes aumentam o uso de CPU pelo browser, além de ser necessário estabelecer uma conexão TCP com cada subdomínio e resolver seu nome por DNS, o que pode causar o efeito oposto ao desejado, ou seja, fazer com que a página demore mais para carregar. O número ideal depende de vários fatores e características do site, mas estudos mostram que um número entre 2 e 4 subdomínios é o indicado. Mais informações sobre os ganhos e cuidados com o uso dessa abordagem podem ser encontradas nos links de referência a seguir:

 

Tags: , , , ,

Divagações sobre Silverlight e HTML 5

by Ricardo Oneda 2. novembro 2010 18:46

Se você acompanha o noticiário de tecnologia, muito provavelmente está sabendo da polêmica, que surgiu durante o PDC 10, realizado na semana passada, envolvendo o HTML 5 e o suposto fim do Silverlight. A Microsoft até já se pronunciou oficialmente sobre o caso, mas como comecei a escrever sobre o assunto antes desse pronunciamento, acredito que valha a pena expor a minha opinião sobre ele. O que escrevi a seguir é baseado no que li na Internet e nas deduções que eu fiz, ou seja, não tenho nenhuma informação exclusiva na qual tenha me baseado e, portanto, posso estar errado sobre alguns pontos.

Os boatos sobre o futuro do Silverlight começaram bem antes do PDC. Em Setembro, foi publicado em um blog o post The rise and fall of Microsoft's UX platform - Part 1, no qual, o autor, um ex-funcionário da Microsoft, dizia que, segundo suas fontes, o Silverlight e o WPF estariam sendo "trocados" pelo HTML 5. Por causa desses boatos, a própria Microsoft publicou um post no blog do time do Silverlight explicando o que ela imaginava ser o futuro dessa tecnologia.

Veio então o PDC, mais precisamente os keynotes de abertura do dia 28 de Outubro (aliás, se você ainda não viu, sugiro que assista, pois tanto os keynotes quanto as sessões podem ser vistas e baixadas gratuitamente pela Internet). Um dos destaques dos keynotes foi o Internet Explorer 9, a nova versão do browser da Microsoft, que encontra-se em versão beta e que, dentre suas várias novidades, um dos principais destaques é o suporte ao HTML 5, que foi bastante explorado na apresentação. Aliás, o suporte ao HTML 5 na próxima versão do Internet Explorer já era de conhecimento público, nenhuma novidade até aí. Além disso, nenhuma palavra foi dita sobre o Silverlight.

Nesse momento, algumas pessoas já começaram a questionar qual seria o papel do Silverlight nessa história, já que a Microsoft estava apoiando tão fortemente o HTML 5. O que essas pessoas não perceberam é que o HTML 5 "concorre" com o Silverlight (e também com o Flash) principalmente no que se refere à parte multimídia (por exemplo, suporte nativo a vídeos, sem a necessidade de plug-ins), mas o Silverlight é muito mais que isso. Além disso, o fato de apoiar o HTML 5 não signfica necessariamente abandonar o Silverlight. Outro ponto que poucas pessoas perceberam é que o apoio da Microsoft ao HTML 5 é mais do que natural, é algo esperado e essencial para o futuro do IE. O Internet Explorer é um browser que ficou muito tempo sem ter uma versão nova lançada (foram vários anos entre o lançamento da versão 6 e a versão 7; a partir daí, o lançamento de novas versões retomou um ritmo mais constante). Isso proporcionou o surgimento de browsers como Firefox e Chrome, que têm ganho terreno às custas do IE, que apesar de ainda ser líder, está vendo seu mercado diminuir ultimamente. É óbvio que a Microsoft está preocupada com isso e também é óbvio que ela utilize um evento como o PDC para promover a próxima versão do IE. Além disso, promover o HTML 5, pode ser um diferencial nesse mercado. Ou seja, não havia nada de errado em dar mais ênfase ao IE 9 nesse momento, pois falar de Silverlight não iria ajudar a ganhar mercado na guerra dos browsers.

No dia 29 de Outubro, a jornalista Mary Jo Foley, especializada na cobertura de assuntos da Microsoft, publicou o artigo que iria causar furor nos dias seguintes. Entitulado Microsoft: Our strategy with Silverlight has shifted, ou seja, em português, "Nossa estratégia para o Silverlight mudou", o artigo continha trechos de uma entrevista realizada no PDC com Bob Muglia, presidente da divisão de Server and Tools da Microsoft, na qual foi abordado o futuro do Silverlight. As informações ficaram um pouco vagas, não é possível entender claramente qual seria essa mudança de estratégia envolvendo o Silverlight, mas em nenhum momento foi dito que esse seria o fim da tecnologia ou que o mesmo perderia importância. O fato é que esse artigo provocou uma série de manifestações na Internet em relação ao debate Silverlight vs HTML 5. Alguns gostaram, outros ficaram confusos e raivosos, e outros tentaram enxegar de maneira mais equilibrada. Mas haveria motivo para tanto barulho? Continue lendo e tire suas conclusões. Destaco abaixo os principais pontos da entrevista:

  • "Silverlight is our development platform for Windows Phone" - traduzindo: "Silverlight é nossa plataforma de desenvolvimento para Windows Phone": ok, nenhuma novidade, todos que acompanham já sabiam disso há bastante tempo;
  • "Silverlight also has some “sweet spots” in media and line-of-business applications" - traduzindo: "Silverlight também está presente em mída e aplicações de negócios": sim, nenhuma novidade também. Como disse anteriormente, o principal ponto onde o Silverlight vai "concorrer" com o HTML 5 é em aplicações multimídia, mas o Silverlight é muito mais que isso. Já com relação às aplicações de negócios, acredito que o Silverlight (e outras tecnologias RIA, como o Flash) tenha uma grande vantagem em relação ao HTML 5, ou seja, na minha opinião, o HTML 5 não vai tornar o desenvolvimento de aplicações de negócios mais fácil ou produtivo e é aí que está o diferencial do Silverlight;
  • "When it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, our strategy has shifted" - traduzindo: "Quando se trata de utilizar Silverlight como um meio da Microsoft para oferecer um ambiente de execução multi-plataforma, nossa estratégia mudou": acredito que essa frase causou toda a confusão. Não ficou claro o que mudou em relação à estragégia do Silverlight. Isso fez com que as pessoas começassem a imaginar coisas e concluíram que o HTML 5 seria a única aposta da Microsoft;
  • "Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, going forward" - traduzindo: "Silverlight continuará sendo uma solução multi-plataforma, funcionando em uma varidade de sistemas operacionais/browsers, evoluindo": era uma coisa que já sabíamos e continua do jeito que está;
  • "But HTML is the only true cross platform solution for everything, including (Apple’s) iOS platform" - traduzindo: "Mas HTML é a única solução verdadeiramente multi-plataforma para tudo, incluindo a plataforma iOS da Apple": essa frase, da maneira que foi colocada, também ficou estranha. É óbvio que HTML é a solução multi-plataforma mais bem posicionada atualmente e não acho que isso irá mudar no futuro. Não há dúvida quanto a isso. Só que, do jeito que foi colocada, essa frase dá a entender que o objetivo inicial do Silverlight seria substituir o HTML. Mas isso não é verdade! Pelo menos, eu, e várias pessoas com quem eu já conversei, nunca pensei no Silverlight como sendo um substituto definitivo do HTML. O objetivo do Silverlight é fornecer um ambiente de execução multi-plataforma, que permita desenvolver aplicações ricas, que seriam muito difíceis ou impossíveis de serem desenvolvidas somente com os recursos que o HTML oferece. E com o HTML 5 isso não vai mudar, ou seja, o Silverlight (e também o Flash) também será necessário para preencher essas lacunas mesmo com o HTML 5;

Enfim, não sei se você concorda comigo, mas não há motivo para tanta controvérsia, não é? De qualquer maneira, o próprio Bob Muglia publicou um post no blog do time do Silverlight tentando diminuir a confusão.

Para finalizar, se você foi uma das pessoas que ficou preocupada se deve ou não investir no Silverlight, peas informações acima, acredito que não é preciso ter receios. O HTML 5, por melhor que seja, não vai conseguir resolver todos os problemas e oferecer os recursos que uma tecnologia RIA como o Silverlight oferece. Além disso, como você pode constatar, o Silverlight parece ter um futuro bem longo pela frente. Portanto, eu não teria esse medo.

Tags: , , , ,

Powered by BlogEngine.NET 1.5.0.7
Theme by Extensive SEO

About the author

Something about the author