Resumen

  • El primer borrador público del W3C, del 14 de septiembre de 2017, definió avisos asíncronos cuando un elemento objetivo cruza un umbral de intersección con un contenedor o con la ventana visible.
  • La interfaz ofreció a páginas largas una forma de aplazar imágenes y contenido sin consultar la distribución en cada desplazamiento. La aplicación conserva la decisión sobre qué cargar al recibir el aviso.

El pasajero pulsa otra vez el botón del ascensor. Y otra. El aparato no llega más deprisa, pero el pasajero siente que está haciendo algo. Un programa que examinaba la posición de cada imagen en cada movimiento de una página larga podía padecer la misma ilusión de productividad. Si la foto seguía varios tramos más abajo, la nueva consulta sólo confirmaba lo que ya se sabía, con una posible factura de cálculo de estilos y distribución.

El primer Working Draft público del W3C, fechado el 14 de septiembre de 2017, abrió con ese coste. Las preguntas explícitas sobre el estado del documento podían forzar trabajo de diseño; el sondeo continuo y los gestores de desplazamiento podían entorpecer la fluidez. El documento mencionó contenido diferido, grandes listas que representan sólo una parte de sus datos y cálculos de posición respecto de la pantalla. La solución propuesta fue recibir información cuando cambiara una relación elegida, no volver a pedirla a cada paso.

La relación tiene tres protagonistas. El objetivo es el elemento vigilado. La raíz es la zona con la que se compara: un contenedor o, si no se declara uno, la ventana visible superior. Un IntersectionObserver recibe una función de aviso y unas opciones. El programa llama a observe(target) para empezar, unobserve(target) para dejar de seguir un elemento y disconnect() para terminar con todos. La respuesta llega como entradas cuando se cruza el umbral configurado. El botón del ascensor pasa a ser una llamada que suena cuando el coche alcanza la planta.

La planta puede elegirse con cierta libertad. rootMargin amplía o reduce el rectángulo de referencia. Un sitio puede pedir el aviso antes de que la fotografía entre realmente en la ventana, para iniciar su carga con antelación. Los valores de threshold indican qué fracción de intersección provoca un nuevo aviso. Una entrada ofrece rectángulos, proporción de intersección, tiempo y elemento afectado. Es suficiente para que una galería prepare la siguiente imagen o una lista cree los próximos artículos. El navegador informa; no edita la revista.

El borrador fue explícito sobre el trabajo que seguía siendo de la página. Observar no descarga una imagen por sí solo. La función de aviso puede iniciar una petición, añadir nodos, mostrar una tarjeta o limitarse a anotar un estado. unobserve() resultaba especialmente útil para una carga que sólo debía ocurrir una vez: si la foto ya ha aparecido, continuar escuchando sus idas y venidas es una afición innecesaria. La API no elimina la responsabilidad del sitio; le entrega una señal compartida.

La entrega asíncrona tenía sentido porque, según el texto de 2017, estos usos no necesitaban una respuesta dura a cada milisegundo. Un pequeño retraso podía valer más que obligar a la página a consultar geometría de modo síncrono mientras se mueve. El borrador también declaró fuera de su objetivo una certificación exacta de cada píxel finalmente mostrado tras filtros y composición. La intersección es una medida geométrica definida. Ni siquiera el ascensor sabe si quien entró disfrutó el viaje.

El borrador W3C más reciente publicado conserva el núcleo: objetivos medidos frente a una raíz, cambios entregados mediante avisos y umbrales elegidos por el programa. La historia oficial de publicaciones empieza en septiembre de 2017 y enumera Working Drafts posteriores hasta octubre de 2023. Esas fechas ordenan documentos. No describen cuántos navegadores o lectores usaban la interfaz en cada año. El último documento de esa secuencia sigue identificado como Working Draft.

Una página extensa muestra por qué esta pequeña pieza importa. Puede registrar muchas tarjetas con un observador, preparar las que se acercan y dejar tranquilas las lejanas. Puede cargar la próxima imagen con margen y dejar de seguirla cuando el trabajo esté hecho. Antes, cada equipo podía construir su propia guardia de desplazamiento, con su calendario de preguntas y sus lecturas de diseño. El estándar no dice cuándo merece una fotografía gastar ancho de banda; sí ofrece una manera común de recibir la pista necesaria.

Conviene resistir una exageración especialmente tentadora: confundir «se cruzó el umbral» con «alguien prestó atención». intersectionRatio expresa cuánto se cruzan los rectángulos según el cálculo de la norma. Una persona puede pasar de largo, mirar otra parte o detenerse a leer. La API no observa ojos ni interés. Precisamente por limitarse a una pregunta que puede contestar, su respuesta sirve para programar trabajo real.

La historia de Intersection Observer es la historia de un aviso bien situado. La página renunció a interrogar a cada imagen ausente durante todo el recorrido. El navegador anuncia cuándo una de ellas llega al punto acordado. Entonces sí: hay motivo para abrir la puerta del almacén y sacar la foto.