Reduzindo o carregamento de scripts de anunciantes

2

Eu tenho um site ( link ) que carrega muito rapidamente quando eu removo os anunciantes e os scripts de rastreamento que nossos parceiros nos fornecem. É claro que precisamos reduzir o tempo de carregamento da página de 6 segundos para 1 segundo, e vejo que são 100% de todos os nossos arquivos js externos para rastreamento de parceiros, anúncios, etc.

Eu tenho batido minha cabeça contra a parede tentando encontrar maneiras alternativas de carregar / comprimir / servir a multidão de js que o usuário precisa baixar. Eu posso facilmente comprimir / minificar o meu, mas alguém que não está no nosso servidor está se tornando difícil de fazê-lo.

O melhor que posso fazer é obter um C no YSlow, e cada sugestão que eles me dão pertence aos meus scripts estúpidos de js!

Acho que o principal problema é o acompanhamento ( link ) que eu vejo na barra de status fazendo com que o site seja carregado por muito tempo . Pensamentos sobre como lidar com isso?

É possível gerenciar scripts de terceiros no meu site?

Qualquer ajuda seria muito apreciada.

    
por HollerTrain 12.01.2011 / 18:52

2 respostas

1

Veja alguns JSs do lado do cliente que lançamos juntos (com base no snippet de acompanhamento assíncrono do Google Analytics) que permitem que você carregue Javascripts externos de forma assíncrona:

<script type="text/javascript">
  (function() {
    var scripts = new Array(
        'external.domain.com/script1.js',
        'external.domain.com/script2.js',
        '../script1.js',
        './script2.js',
        '/script3.js'
    );
    if ( scripts.length )
    {
        for ( var i = 0; i < scripts.length; i++ )
        {
            var asynchronous = document.createElement('script');
            asynchronous.type = 'text/javascript';
            asynchronous.async = true;
            if (
                scripts[i].substring(0, 1) != '/' &&
                scripts[i].substring(0, 1) != '.'
            ) {
                // assume external domain (enforce protocol)
                asynchronous.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + scripts[i];
            } else {
                // assume relative URI
                asynchronous.src = scripts[i];
            }
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(asynchronous, s);
        }
    }
  })();
</script>
    
por 12.01.2011 / 22:48
0

Colocar scripts de terceiros em um iframe pode ser uma alternativa.

O bom senso é que um iframe tem um alto custo (em termos de carga), mas se o custo for menor que o custo de carregamento de elementos de terceiros, você pode tentar.

Provavelmente você fez a maioria das coisas que são descritas aqui , mas é um bom recurso, de qualquer maneira.

    
por 12.01.2011 / 19:56