pagina - script type= text/javascript src=




¿Es posible cargar un anuncio de JavaScript al final de la página para evitar tiempos de carga lentos? (2)

¿Hay alguna manera de incluir un anuncio cargado con JavaScript pasado en la página, pero tenerlo posicionado en el contenido? El objetivo principal es evitar que el anuncio de JavaScript reduzca la velocidad de carga de la página, por lo que si hay otros métodos para lograr esto, por favor, comparta.


Existe el atributo defer que puede poner en bloques de script para diferir su ejecución hasta que la página complete la carga.

<script src="myscript.js" type="text/javascript" defer>
// blah blah
</script>

Sin embargo, no estoy seguro sobre la recomendación general sobre el uso de este atributo.

EDITAR: Como señaló @David, use defer="defer" para XHTML

Y siempre puede poner el código dentro del evento window.onload para que se ejecute después de cargar las páginas:

window.onload = function () {
    // ad codes here

};

Pero el enfoque posterior puede plantear algunos problemas, es posible que desee probarlo primero.

Más información en esta publicación de blog por Dean Edwards, el tipo que escribió el famoso empaquetador de javascript .

EDITAR: Si el problema es el tamaño del código de anuncio, siempre puede aplazar la carga combinando los métodos anteriores con la inyección de scripts a través de document.write :

function loadScript(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

Entonces, el código resultante podría verse más o menos así:

<script type="text/javascript" defer>

function loadScript(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

loadScript('http://ads.example.com/advertisements.js');

</script>

Pero como ya he dicho, depende del código de anuncio específico que obtenga también. Debido a la posición en la que document.write escribirá cosas, podría no ser la ubicación que desea. Algunas modificaciones pueden ser necesarias.


function addLoadEvent(func) {
      var oldonload = window.onload;
      if (typeof window.onload != 'function') {
        window.onload = func;
      } else {
        window.onload = function() {
          oldonload();
          func();
        }
      }
    }

El código anterior es una buena forma de agregar un nuevo evento onload que no interfiera con su javascript existente. Luego puede agregar un nuevo evento de carga para cargar los anuncios utilizando el siguiente código.

addLoadEvent(function() { // call to loadScript() here });






javascript