Mislav Marohnić
anunció hoy
que los desarrolladores de Github se deshicieron de jQuery en el front-end de GitHub.com. Parecería que no hay nada notable en este hecho, si no fuera por un punto interesante.
El problema de elegir un nuevo marco para el frontend se resolvió radicalmente; en principio, se decidió prescindir de los marcos. En cambio, se utilizaron las siguientes herramientas:
- querySelectorAll (que supuestamente fue inspirado por jQuery en un momento),
- buscar para trabajar con AJAX,
- eventos delegados para manejar eventos,
- polyfills para trabajar con DOM,
- elementos personalizados que están en aumento.
Además de los
Elementos personalizados , se decidió no usar nada más de
Web Components . Los desarrolladores observaron de cerca el
Shadow DOM y no les importaría recurrir a él; sin embargo, debido al hecho de que la velocidad de búsqueda en el DOM deja mucho que desear para los polyfills, tuvieron que posponer esta aventura por ahora.
¿Por qué los desarrolladores básicamente necesitaban hacer todo esto?
Según ellos , para "dar" a los visitantes menos kilobytes, para poder usar una sintaxis más explícita para realizar manipulaciones con el DOM, así como para poder usar
la biblioteca Flow.JS para el análisis de tipo estático. Según los desarrolladores, el proceso de salida de jQuery tomó años.
Eddie Osmani, del equipo de Google Chrome, apreció la rápida velocidad y carga de la nueva versión del sitio.El
complemento jquery-pjax fue reemplazado por
vanilla pjax , que está especialmente diseñado para Github, está equipado con mejoras y está estrechamente relacionado con la base del código; desafortunadamente, es poco probable que el código de la versión de la biblioteca utilizada por Github esté abierto debido a la dificultad de admitirlo en el futuro.
Por cierto, Github pone muchos de sus componentes web en código abierto;
puede verlos como
referencia , en el futuro la lista se ampliará. Para los navegadores que carecen de soporte de
búsqueda nativa, Github ha escrito su propio
polyfill ; para delegar eventos, se usa la biblioteca de
eventos delegados . Ambas bibliotecas están disponibles bajo la licencia MIT.