Capítulo 11: El BOM y Web APIs Básicas
Mientras que el DOM (Document Object Model) se enfoca en manipular la página HTML, el BOM (Browser Object Model) proporciona acceso a la ventana del navegador y funciones globales. Este capítulo cubre las APIs más útiles.
11.1. El objeto window y dimensiones del viewport
window y dimensiones del viewportEl objeto window es el objeto global en el navegador. Todo lo que ejecutas está dentro de window.
Propiedades de dimensión:
// Tamaño de la ventana (viewport)
console.log(window.innerWidth); // Ancho usable (sin scrollbar)
console.log(window.innerHeight); // Alto usable
// Tamaño total del documento (puede ser mayor si hay scroll)
console.log(document.documentElement.scrollWidth);
console.log(document.documentElement.scrollHeight);
// Posición del scroll
console.log(window.scrollX); // Desplazamiento horizontal
console.log(window.scrollY); // Desplazamiento verticalEvento de redimensionamiento:
window.addEventListener('resize', () => {
console.log(`Nueva dimensión: ${window.innerWidth}x${window.innerHeight}`);
// Útil para layouts responsive
});11.2. localStorage y sessionStorage (Repaso práctico)
localStorage y sessionStorage (Repaso práctico)Estas APIs permiten guardar datos en el navegador de forma persistente.
localStorage: Persiste incluso después de cerrar el navegador
localStorage: Persiste incluso después de cerrar el navegadorsessionStorage: Se elimina al cerrar el navegador
sessionStorage: Se elimina al cerrar el navegadorPatrón: Guardar objetos complejos
Evento de cambio (útil para sincronización entre pestañas)
11.3. Timers: setTimeout, setInterval, requestAnimationFrame
setTimeout, setInterval, requestAnimationFramesetTimeout: Ejecutar código después de un tiempo
setTimeout: Ejecutar código después de un tiemposetInterval: Ejecutar código repetidamente
setInterval: Ejecutar código repetidamenterequestAnimationFrame: Para animaciones suaves
requestAnimationFrame: Para animaciones suaves11.4. Objeto location: Trabajar con URLs
location: Trabajar con URLsPropiedades:
Métodos:
URLSearchParams: Parsear query strings
URLSearchParams: Parsear query strings11.5. Objeto history: Navegación del historial
history: Navegación del historial11.6. Patrón práctico: Tema persistente
Aplicación que guarda la preferencia del usuario:
Resumen del Capítulo
El BOM proporciona acceso a funcionalidades del navegador más allá del DOM. localStorage es fundamental para persistencia sin servidor, timers para ejecución retardada/repetida, y location/history para navegación. Estas APIs son la base para aplicaciones web modernas.
💡 Conceptos Clave:
window: Objeto global del navegador
innerWidth/innerHeight: Dimensiones del viewport
localStorage/sessionStorage: Almacenamiento persistente
setTimeout/setInterval: Ejecución retardada/repetida
requestAnimationFrame: Animaciones sincronizadas con FPS
location: Objeto de la URL actual
URLSearchParams: Parsear query strings
history: Navegación del historial
🤔 Preguntas de Reflexión:
¿Cuál es la diferencia entre localStorage y sessionStorage?
¿Cómo guardarías un objeto complejo en localStorage?
¿Cuándo usarías requestAnimationFrame en lugar de setInterval?
¿Cómo obtendrías el valor de un parámetro en la URL?
¿Cuál es la diferencia entre location.href y location.replace()?
Crea una aplicación que guarde el tema del usuario y lo cargue al iniciar.
Última actualización
¿Te fue útil?