Desarrollo en curso, en breve se publicarán el resto de temas.

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

El 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 vertical

Evento 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)

Estas APIs permiten guardar datos en el navegador de forma persistente.

localStorage: Persiste incluso después de cerrar el navegador

sessionStorage: Se elimina al cerrar el navegador

Patrón: Guardar objetos complejos

Evento de cambio (útil para sincronización entre pestañas)


11.3. Timers: setTimeout, setInterval, requestAnimationFrame

setTimeout: Ejecutar código después de un tiempo

setInterval: Ejecutar código repetidamente

requestAnimationFrame: Para animaciones suaves


11.4. Objeto location: Trabajar con URLs

Propiedades:

Métodos:

URLSearchParams: Parsear query strings


11.5. Objeto history: Navegación del historial


11.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:

  1. ¿Cuál es la diferencia entre localStorage y sessionStorage?

  2. ¿Cómo guardarías un objeto complejo en localStorage?

  3. ¿Cuándo usarías requestAnimationFrame en lugar de setInterval?

  4. ¿Cómo obtendrías el valor de un parámetro en la URL?

  5. ¿Cuál es la diferencia entre location.href y location.replace()?

  6. Crea una aplicación que guarde el tema del usuario y lo cargue al iniciar.


Última actualización

¿Te fue útil?