¿Quieres aumentar la velocidad de carga de tu página web? A continuación se muestra un pequeño código javascript que realiza la carga no bloqueante de archivos CSS y JS.
Pero como siempre, un poco de teoría. ¿Qué es el non-blocking loading o carga no bloqueante?
Cuando una página web es renderizada por el navegador, éste ejecuta el código HTML según lo encuentra, así que si detecta una referencia a un script javascript o a un archivo css, éste detiene el proceso de renderizado para obtener los archivos encontrados. Una vez los archivos son obtenidos del servidor, el navegador continua el renderizado del HTML.
Pero, ¿influye esto en la velocidad de carga de una página web? La respuesta es sí, es más, esto influye en el SEO de la web, ya que los motores de búsqueda favorecen las páginas que tienen una mayor velocidad de carga.
A continuación se muestra el código javascript que realiza la carga de archivos javascript y css de forma no bloqueante. La idea es añadir los archivos bloqueantes mediante javascript una vez descargado el código HTML, lo que reduce el tamaño de la web a descargar por los motores de búsqueda:
1: <script type="text/javascript">
2: // Función para carga de archivos javascript
3: function nonBlockingScript(url) {
4: // Crea un elemento "script"
5: var js = document.createElement("script");6: // Asigna la url proporcionada al elemento recién creado
7: js.src = url;8: // Obtiene el head de la página
9: var head = document.getElementsByTagName("head")[0];10: // Incluye el elemento "script" dentro del head
11: head.appendChild(js);12: }13:14: // Función para la carga de archivos css
15: function nonBlockingStylesheet(url) {
16: // Crea un elemento "link"
17: var link = document.createElement("link");18: // Asigna la url proporcionada al elemento recién creado
19: link.href = url;20: // Asigna el tipo css al "link" y el "rel"
21: link.type = "text/css";
22: link.rel = "stylesheet";
23: // Obtiene el head de la página
24: var head = document.getElementsByTagName("head")[0];25: // Incluye el elemento "script" dentro del head
26: head.appendChild(link);27: }28:29: // Ejemplos de uso
30: nonBlockingScript("/script.js"); // Script /script.js31: nonBlockingStylesheet("/style.css"); // Hoja de estilos /style.css32: </script>
Como vemos, en pocas líneas hemos creado un completo sistema de carga de archivos javascript y css no bloqueante, lo que nos permitirá aumentar la velocidad de carga de nuestra web de cara a las arañas de los motores de búsqueda y sin perjuicio para los usuarios.
Y vosotros, ¿conocéis otro método para evitar la carga bloqueante de archivos?
0 comentarios: (+add yours?)
Publicar un comentario