
High Performance JavaScript
Nicholas C. Zakas
- Editorial
- O'Reilly
- Año
- 2010
- Páginas
- ~232
- Nivel
- Avanzado
De qué trata
Libro de Nicholas C. Zakas, por entonces ingeniero de frontend en Yahoo!, sobre cómo hacer que el código JavaScript cargue y se ejecute más rápido en el navegador. Incluye capítulos de otros cinco especialistas: Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov y Matt Sweeney. Es de 2010 y refleja la era de ECMAScript 3/5, Internet Explorer 6–8 y las primeras versiones de Chrome. Está dirigido a desarrolladores intermedios y avanzados que ya dominan el lenguaje; no sirve para principiantes.
Los capítulos tratan la carga y ejecución de scripts sin bloquear la página (scripts no bloqueantes, carga dinámica, agrupar archivos), el acceso a datos (variables locales frente a globales, cadena de ámbitos, miembros de objetos), el scripting del DOM (coste de cada acceso, reflow y repaint, delegación de eventos), el control de flujo (tipos de bucles, condicionales, recursión y memoización), cadenas y expresiones regulares (concatenación eficiente y cómo evitar el backtracking excesivo), la respuesta de la interfaz (el hilo de la UI, dividir tareas con temporizadores y Web Workers), Ajax (formatos de datos como XML, JSON y HTML, y caché) y buenas prácticas de programación generales. Cierra con la compilación y el despliegue (concatenar, minificar, comprimir con gzip, cachear) y con herramientas de perfilado del navegador.
No tiene proyectos: cada capítulo explica por qué algo es lento, lo mide con comparativas entre navegadores y propone técnicas concretas. Su valor está en entender cómo trabaja el motor y el navegador por dentro, y muchas ideas siguen vigentes, como no bloquear el hilo principal, reducir los reflows y cargar los scripts de forma diferida. Sin embargo, muchas mediciones y microoptimizaciones quedaron obsoletas con los compiladores JIT modernos (V8 y los demás), y las herramientas mencionadas (YUI Compressor, Firebug, entre otras) ya no se usan. Léelo como fundamento conceptual y compleméntalo con material actual sobre Core Web Vitals y las DevTools.
- Rendimiento web
- Carga no bloqueante
- Ámbito y acceso a datos
- DOM
- Reflow y repaint
- Bucles y recursión
- Expresiones regulares
- Hilo de la UI
- Web Workers
- Ajax
- Minificación y despliegue
- Perfilado
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

