Mejorar el PageSpeed del Website de Odoo: JavaScript

¿Cuánto influye JS en Odoo?

¿JavaScript afecta al rendimiento?

Tengamos en cuenta algo: en internet todo afecta a la optimización. Pero el caso de JavaScript es muy particular, debido a que debe terminar de cargarse previo a la carga de elementos del DOM, donde se produce el famoso "bloqueo de contenido renderizado". Es un claro problema si buscamos un sitio web optimizado.

¿Qué tan optimizado está el JavaScript de Odoo?

Esto es más ambigüo. A nivel librerías de JS Odoo posee varias de base tales como jQuery, Bootstrap, Popper, etc; y la gran mayoría se cargan de base, pese a que no se utilizan en su totalidad (como jQuery). Odoo comprime todo el JavaScript en un solo conjunto de archivos para evitar múltiples llamados; con lo cual nunca tendrá puntaje ideal de Pagespeed pero a cambio nos permite tener funciones de CMS. Un consejo siempre útil es utilizar el framework de JavaScript de Odoo en lugar de JavaScript Vanilla, esto se debe a que Odoo estará más preparado para comprimir de forma óptima su propio framework.

Limpiar Contenido no utilizado

Les sorprendería saber la cantidad de código JS que se genera en etapas tempranas de desarrollo y luego queda ahi, sin uso pero afectando considerablemente la carga. Se que es un consejo un poco simple, pero recomiendo revisar el código JS de módulos de terceros (propios y ajenos) a fin de detectar si todo lo que ahi se pone está siendo utilizado.

Utilizar ES moderno

No siempre se puede eliminar código de JS, hay que saber muy bien lo que estamos haciendo; pero si nos toca la opotunidad de programar nuestros propios script lo mejor es utilizar los últimos estándares aceptados de ES. Es muy común declarar variables de JS con var, pero es preferible utilizar let en casi todas las situaciones o const en aquellas variables que no cambiaran su contenido. Esto permite administrar mejor los buffers de memoria en navegadores modernos; y la compatibilidad en la actualidad es casi absoluta. Del mismo modo es aconsejable leer de forma continua portales de hacks para JS, tips o blogs que comenten opciones más eficientes de realizar operaciones típicas (clonar un array, resetar un array, buscar el valor de una clave en un array de objetos, etc). En esta entrada del blog no explicaremos eso debido a que es muy largo, pero puede que lo hagamos en el futuro cercano.

Comprimir JS

Cuando Odoo empaqueta nuestros ficheros suele comprimir todo el código con el objetivo de que pese lo menos posible. Esto es bueno pero, ¿siempre se comprime todo? La realidad es que no. Muchas dependencias JS no vienen en su versión min, produciendo un pese levemente mayor al que podrían tener. Un caso muy conocido en Odoo 12 era el archivo datetime para traducir los nombres de los dias de la semana y el formato de hora. Era un código excesivamente largo en el sistema que no estaba comprimido. Para evitar problemas, recomiendo utilizar el GZip de Nginx o Apache.

Actualizar módulos de Odoo

No soy partidario de actualizar los paquetes de Odoo de forma muy frecuente, pero cada 6 meses por temas de seguridad y optimización es aconsejable. El JavaScript no es la excepción, no agregarán nuevas features pero mejoran las ya existentes (no siempre a nivel funcional, tambien a nivel rendimiento).

Mejorar el PageSpeed del Website de Odoo: JavaScript
Ignacio Buioli 7 junio, 2021
Compartir Entrada
Suscribirse al Newsletter:
Categorías
Archivo