Ir al contenido principal

Código de JavaScript - Cargar un archivo JS o CSS en segundo plano, y controlar cuando ha terminado de cargarse en la pagina

Posted by lawebdelprogramador.com

Este código muestra como cargar un archivo JS o CSS en nuestra página de manera asyncrona, pudiendo controlar cuando termina de cargarse en la página.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<!DOCTYPE html>
<html>
<head>
 
 
</head>
<body>
 
Contenido de la pagina
 
</body>
 
<script>
/**
 * Funcion que carga el archivo JS o CSS utilizando XMLHttpRequest
 * Tiene que recibir:
 *    la url del archivo js o css
 *    la funcion a llamar cuando se haya cargado el contenido
 */
function getContent(url, callBackFunction)
{
    try
    {
        // creamos el objeto XMLHttpRequest
        var asyncRequest = new XMLHttpRequest();
 
        // registramos cualquier evento
        asyncRequest.onreadystatechange = function()
        {
            // Si develve "Done" (4) o ok (200)
            if (asyncRequest.readyState==4 && asyncRequest.status==200)
            {
                // mamamos a la funcion pasada por parametro enviando el contenido
                // del archivo descargado
                callBackFunction(asyncRequest.responseText);
            }
        }
 
        // Preparamos la peticion
        asyncRequest.open('GET', url, true);
 
        // enviamos la petición
        asyncRequest.send(null);
    }
    catch(exception)
    {
        alert('Fallo en la peticion');
    }
}
 
// Llamamos a la funcion getContent pasando como parametro el archivo JS a
// abrir y la funcion que tiene que ejecutar una vez se haya cargado el archivo
getContent("/js/miArchivo.js",function (code) {
 
    // Creamos un nuevo elemento <script>
    var s = document.createElement('script');
 
    // añadimos dentro del <script> el contenido descargado
    s.innerHTML=code;
 
    // Lo añadimos encima del primer <script> de la pagina
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
 
    /** EN ESTE PUNTO EL ARCHIVO YA SE HA CARGADO, Y PODEMOS GESTIONAR CUALQUIER
        EVENTO O FUNCION **/
});
 
 
// Llamamos a la funcion getContent pasando como parametro el archivo CSS a
// abrir y la funcion que tiene que ejecutar una vez se haya cargado el archivo
getContent("/css/miArchivo.css",function (code) {
 
    // Creamos un nuevo elemento <style>
    var s = document.createElement('style');
 
    // añadimos dentro del <style> el contenido descargado
    s.innerHTML=code;
 
    // Lo añadimos encima del primer <script> de la pagina
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
 
    /** EN ESTE PUNTO EL ARCHIVO YA SE HA CARGADO, Y PODEMOS GESTIONAR CUALQUIER
        EVENTO O FUNCION **/
});
</script>
 
</html>


http://www.lawebdelprogramador.com/codigo/JavaScript/3883-Cargar-un-archivo-JS-o-CSS-en-segundo-plano-y-controlar-cuando-ha-terminado-de-cargarse-en-la-pagina.html

Comentarios

Entradas más populares de este blog

CÓMO INSTALAR NET FRAMEWORK 3.5 EN WINDOWS 10

PUBLICADO EL 23 de noviembre de 2016 POR VicHaunter Con Windows 10 nos encontramos una serie de paquetes y librerías nuevas que ya vienen preinstaladas en el sistema. El problema es ver cómo solucionar el error al instalar Net Framework 3.5 . Si bien vienen ya algunos paquetes más nuevos instalados de serie, los anteriores hay que instalarlos de forma manual. La verdad es que no tiene mucho sentido, puesto que hay una gran cantidad de programas y juegos que los requieren.  Si estás aquí seguramente te has encontrado con que al ejecutar algún juego o programa se abre una ventana de Net Framework 3.5 requerido. Errores al instalar Net Framework 3.5 en Windows 10 En esta misma ventana que te aparece le puedes dar directamente a instalar el paquete de forma automática. Pero ahora viene lo malo, y es que después de un rato de buscar, descargar y preparar la instalación, da errores varios.  NOTA: Si estás intentando solucionar el error 0X80071A90 de Net Framewor...

Aprende a Programar - intro a la programacion

Aprende a Programar [Actualizando] Antes de comenzar con un lenguaje me gustaría ver algo de teoría.  ¿Que es un algoritmo?   Como siempre empezamos con wikipedia porque es lo primero que aparece...  Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas. No esta mal esta definición pero yo lo veo como...  Una Secuencia finita de pasos ejecutables no ambiguos que deben terminar en algún momento y describen los pasos para resolver un problema. Bien ahora me gustaría ver un par de definiciones.  Lenguaje de programación... ¿que es para ustedes?  Ustedes me dirán C, C++, Java... Etc...Etc...Etc...  Pero no me están diciendo que es un lenguaje de programación...  El lenguaje de programación es un conjunto de primitivas.   Ahora me preguntaran que es una primitiva...  Es una estructura semántica con una sintaxis determinada.   La sintaxis es como se escr...

Canva – El software de diseño increíblemente simple (canva.com)

Con Canva el diseño es fácil para todos. Crea diseños para la web. Infografías Diseña infografías virales con Canva, el mejor programa de ... Presentaciones ¿Necesitas crear presentaciones en el trabajo o el colegio? Un ... Pósters Diseña tus pósters personalizados gratis con Canva. Con cientos ... Tipos de documentos Tarjetas Tarjetas virtuales Logotipos Flyers Pósteres Banners Hoja de vida Brochures Postales Infografías Membretes Portadas de libros Portadas de discos Collages de fotos Presentaciones Tarjetas de presentación Invitaciones digitales Tarjetas de regalo Portadas de revistas Encabezados de Twitter Portadas para Facebook Edición de fotos Desenfoque de foto Iconos gratuitos Insignias gratuitas Cuadrículas de diseño Efecto de viñeta Etiquetas Globos de texto Añade texturas Recorta tus imágenes Efectos fotográficos Marco de foto Enderezador de foto Imágenes transparentes Añadir texto a foto...