Otimize a exibição de arquivos estáticos

1

Eu tenho um aplicativo em execução no windows webserver 2008. Ele gera miniaturas que são armazenadas em cache no disco.

Mas o carregamento dessas imagens em miniatura estáticas demora um pouco, já que não tenho uma conexão lenta. Por exemplo, o Firebug me diz que a maioria das miniaturas (tamanho entre 30 - 50 kb) leva entre 600 ms e 1,2 segundo para carregar. E quase todo o tempo é gasto enquanto "espera pela resposta". Portanto, suspeito que o servidor esteja respondendo muito devagar. Existe uma maneira de otimizar a veiculação de conteúdo estático através do IIS 7?

    
por Max 11.11.2009 / 09:23

2 respostas

1

Os navegadores mais recentes (IE8, Chrome) aumentaram o número máximo de conexões por servidor para 6, o que é uma boa tendência.

No entanto, para contornar o limite de 2 conexões (sem exigir uma alteração de configuração do navegador), um truque que você pode usar é criar vários CNAMES (aliases) em dns que apontam para seu servidor da web. Em seguida, no aplicativo, você gera as tags de imagem com HREFs padronizados (ou aleatórios) que utilizam todos os seus. Isso engana o navegador, fazendo-o pensar que as imagens são provenientes de diferentes fontes e, em seguida, abrirá mais de duas conexões ao seu site ao mesmo tempo. Isso não ajudará necessariamente o tempo de veiculação de uma única imagem, mas, para o tempo de carregamento geral da página, ela deverá proporcionar algum alívio.

Você precisaria considerar algumas coisas antes de empregar esta técnica:

  1. Como isso funcionaria com o mecanismo de armazenamento em cache de seu aplicativo. Você pode acabar com um cache muito maior de suas imagens
  2. Você precisaria prestar atenção ao número de conexões simultâneas em seu servidor da Web, pois ele aumentaria à medida que o número de sessões simultâneas permanecesse o mesmo

Há uma tonelada de posts que explicam essa técnica em detalhes. Aqui está um bom do DevCentral: O terceiro maior ( útil) hackear a história da Web

    
por 11.11.2009 / 13:28
0

Não tenho certeza sobre o IIS 7, mas você provavelmente deve ter as imagens carregadas de um domínio diferente, de modo que o navegador possa tentar carregá-las em paralelo. Um navegador (dependendo do navegador) tentará apenas carregar 2 arquivos de um domínio por vez. Acredito que o firefox tentará carregar até 6 arquivos de uma só vez se eles forem de domínios diferentes. Eu também recomendo webservers mais leves para conteúdo estático, como o nginx. Eu percebo que pode não ser a resposta que você está procurando, mas talvez ajude.

    
por 11.11.2009 / 09:48