Una página web que se carga lentamente es muy frustrante y ocasiona pérdidas de tiempo. Para los propietarios de esas webs, lo que viene después es aún peor: usuarios abandonándola en manada. Amazon, por ejemplo, estima que cada 100 milisegundos de retraso recorta sus beneficios en un 1 por ciento.
Para ayudar a combatir este problema, unos investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL), adscrito al Instituto Tecnológico de Massachusetts (MIT), en Cambridge, Estados Unidos, así como de la Universidad Harvard en el mismo país, han desarrollado un sistema que reduce los tiempos de carga en un 34 por ciento. Denominado “Polaris”, determina cómo superponer la carga de los objetos de una página, de manera que toda ella precise menos tiempo para cargarse.
Pueden necesitarse hasta 100 milisegundos cada vez que un navegador tiene que cruzar una red móvil para ir a buscar un fragmento de un bloque de datos. A medida que las páginas aumentan su complejidad, a menudo necesitan de múltiples viajes que crean retrasos que se suman. El nuevo método minimiza el número de viajes de ida y vuelta de manera que se pueda acelerar sustancialmente el tiempo de carga de una página.
Antes de que tecleemos una URL, nuestro navegador no sabe realmente qué aspecto tendrá la página. Para cargarla, tendrá que moverse por la red para traer “objetos” como archivos HTML, código fuente en JavaScript, e imágenes. Una vez se ha traído un objeto, el navegador lo evalúa para añadir su contenido a la página que el usuario contempla.
Pero no es tan sencillo. Evaluar un objeto a menudo significa tener que buscar y evaluar más objetos, que se describen como “dependencias” de los originales. Como ejemplo, un navegador podría tener que ejecutar el código JavaScript de un archivo para poder descubrir más imágenes que buscar y mostrar.
El problema es que los navegadores no pueden realmente ver todas estas dependencias debido a la forma en la que los objetos son representados por el HTML (el formato estándar de expresar la estructura de una página web). Como resultado de ello, tienen que ser conservadores acerca del orden en el que cargan los objetos, lo que tiende a incrementar el número de viajes entre redes y a hacer más lenta la carga de la página.
Lo que hace Polaris, desarrollado por el equipo de Ravi Netravali, Ameesh Goyal, Hari Balakrishnan y James Mickens, es hacer un seguimiento automático de todas las interacciones entre objetos.
El seguimiento de dependencias al detalle tiene el potencial de reducir grandemente los tiempos de carga de las páginas, sobre todo en conexiones de elevada latencia o de bajo ancho de banda.