2010-10-01 19 views
6

Desde que descubrí el concepto de non-blocking scripts me he obsesionado con la carga de todos mis scripts externos de esta manera. ¡Incluso he pirateado Joomla! plantillas (que sé que es una mala práctica) para cargar scripts sin bloqueo en el archivo index.php. Ejemplo de código a continuación.Obsesión con secuencias de comandos sin bloqueo

(function() { 
    var script = document.createElement('script'), head = document.getElementsByTagName('head')[0]; 

    script.type = 'text/javascript'; 
    script.src = "http://www.mywebsite.com/scripts/one_of_many.js" 
    head.appendChild(script); 
})(); 

Mis preguntas son:

¿Cuándo es bueno/malo para cargar secuencias de comandos no bloqueantes?

¿Cuál debería ser el límite para usar scripts sin bloqueo?

+0

1 para dar vuelta a mí en las secuencias de comandos no bloqueante. – Stephen

+5

Casi mecanografié _los scripts de bloqueo fallarían si javascript estuviera deshabilitado en el navegador_ y luego recordara el viernes por la noche y la hora en que apagué la computadora. – Amarghosh

+1

@Amarghosh: cualquier JavaScript fallaría si JavaScript está deshabilitado en el navegador. –

Respuesta

1

La técnica que está utilizando para los scripts que no son de bloqueo (al agregar un elemento DOM del script) no mantendrá el orden de ejecución del script en todos los navegadores, solo en Firefox y Opera.

Si no le importa el orden de ejecución, puede usarlo de forma segura.

Si no, puede combinarlo con algunas otras técnicas, como el aplazamiento de guiones para IE, el guión en iframe o XHR.

Más detalles sobre Even Faster Websites

0

Si está cargando muchos archivos incluso sin bloqueo, lo que puede lograr simplemente colocándolos al final html justo antes de la etiqueta </body> ya que los navegadores hacen las cosas tal como los encuentran en la página, si estás cargando bastantes.

Es bueno hacerlo, pero es mejor ver cómo fusionar archivos y minificar/obstuficar para obtener aún más tiempo afeitado. La otra cosa obvia es asegurarse de que está GZipping el JS que va al navegador.

Cuestiones relacionadas