Cómo cargar JavaScript

Como ya he comentado alguna otra vez, el JavaScript es uno de los elementos que bloquean la carga de los sitios web. Para evitar este bloqueo podemos usar algunos métodos creados con otro código de JavaScript que nos servirá para cualquier fichero externo que queramos cargar.

Lo bueno de estos sistemas es que permiten cargar en el sistema no sólo JavaScript sino que se podría abrir hasta CSS. Los códigos son bastante sencillos:

function loadScript(url, callback){
  var script = document.createElement("script")
  script.type = "text/javascript";
  if (script.readyState){ // Internet Explorer
    script.onreadystatechange = function(){
      if (script.readyState == "loaded" || script.readyState == "complete") {
        script.onreadystatechange = null;
        callback();
      }
    };
  } else { // Otros navegadores
    script.onload = function(){
    callback();
  };
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}

Con esta función podemos cargar un script dentro del elemento head. Y con lo siguiente hacemos la llamada desde el código en el momento que queramos:

<script type="text/javascript" src="http://www.loquesea.ext/funcion.js"></script>
<script type="text/javascript">
loadScript("http://www.loquesea.ext/fichero1.js", function(){ });
loadScript("http://www.loquesea.ext/fichero2.js", function(){ });
</script>

3 comentarios en “Cómo cargar JavaScript”

  1. Buenas Javier,

    Yo suelo utilizar la alternativa del API de JQuery frente a la manual por si le es de utilidad a alguien. Entiendo que en el resto de frameworks o librerías JS existirá algo similar aunque no tengo la información.

    http://api.jquery.com/jQuery.getScript/

    Un saludo

  2. Siempre se ha dicho que el flash dificulta el seo. Pero en cambio, he empezado a trabjar en una agencia en que too es vía Flash y , pese a too, obtienen muy buenos resultados. No preguno porue soy nuevo y me da cosa, pero, existe algún modo de lograrlo? Es una antigua creencia? se puede optimizar el flash?. Grcias Javier, enhorabuena por tu blog.

Deja un comentario