2009-05-25 14 views
9

He utilizado el "Better Google Analytics JavaScript that doesn’t block page downloading" para cargar Google Analytics dinámicamente para que no bloquee el procesamiento HTML/página.Google Analytics - Bloques HTML/página de representación

Sin embargo, parece que mi occassionaly página HTML bloqueará la representación en el mensaje de estado de Firefox 3.0 (WinXP) establece:

"Transferencia de datos desde www.google-analytics.com"

¿Alguna idea sobre cómo cargar el JavaScript de Google Analytics de forma que no bloquee el desgarro de HTML/página?

+0

Utiliza el atributo async de la etiqueta de script. Creo que FF 3.0 no lo admite. –

+1

el enlace está roto – codebox

+0

El enlace del artículo está roto. Aquí hay un enlace a la última versión en caché de abril de 2014 http://web.archive.org/web/20130402061350/http://lyncd.com/2009/03/better-google-analytics-javascript/ –

Respuesta

4

Ponga el código de Google Analytics como lo último antes de la etiqueta </body>, como recomienda Google?

+0

Tengo y si observas desde el código de artículo de lyncd.com, carga dinámicamente el JS en el elemento principal. –

+0

Bien. Cuando ve el mensaje "Transferencia de datos de www.google-analytics.com", ¿se ha bloqueado el procesamiento de su página o la página parece haber terminado aparte de ese mensaje? – chaos

+0

Cuando veo el mensaje, la página tiene un bloque notable al representar la página. Tengo JS que convierte algunos DIV pantalla de "ninguno" a "bloque", pero ese código no se produce porque la página se atasca en esta "transferencia de datos de www.google-analytics.com" –

1

Pero al fondo (justo antes de la </cuerpo >) y retrasarlo:

<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script> 
<script type="text/javascript"> 
    if (typeof(_gat)=='object') 
     setTimeout(function(){ 
      _gat._getTracker("UA-1234567-8")._trackPageview()}, 1500); 
</script> 

Tenga una mirada en mi explicación acerca de por qué creo que este es el "best way to integrate analytics"

1

El. DEFER atributo puede funcionar para usted

<script DEFER type="text/javascript" src="http://www.google-analytics.com/ga.js"> 

<script DEFER type="text/javascript">... tracker code ...</script> 
7

se puede utilizar Google Analytics [carga asíncrona de códigos de seguimiento] [1]. en el siguiente fragmento debería ayudar:

<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXX-X']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +  '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

</script> 
+7

FYI - este código no está actualizado. Google ha publicado una actualización: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html – Brian

+0

A partir de la fecha de este comentario, la respuesta es similar al fragmento de seguimiento de Google. –