- La compatibilidad con
ResizeObservers
te notificará cuando el rectángulo de contenido de un elemento haya cambiado de tamaño. - Los módulos ahora pueden acceder a metadatos específicos del host con import.meta.
- El bloqueador de ventanas emergentes se fortalece.
window.alert()
ya no cambia el enfoque.
Hay mucho más.
Soy Pete LePage. Analicemos las novedades para desarrolladores en Chrome 64.
¿Quieres ver la lista completa de cambios? Consulta la lista de cambios del repositorio de código fuente de Chromium.
ResizeObserver
Hacer un seguimiento de cuándo cambia el tamaño de un elemento puede ser un poco complicado. Lo más probable es que
adjuntas un objeto de escucha al evento resize
del documento y, luego, llames
a getBoundingClientRect
o getComputedStyle
. Sin embargo, ambos pueden causar un intercambio de diseño.
¿Qué sucede si la ventana del navegador no cambió de tamaño, pero se agregó un elemento nuevo al
documento? ¿O agregaste display: none
a un elemento? Ambos pueden cambiar el tamaño de otros elementos de la página.
ResizeObserver
te notifica cada vez que cambia el tamaño de un elemento y proporciona la nueva altura y el nuevo ancho del elemento, lo que reduce el riesgo de fragmentación del diseño.
Al igual que con otros observadores, usarlo es bastante simple. Crea un objeto ResizeObserver
y pasa una devolución de llamada al constructor. La devolución de llamada recibirá un array de ResizeOberverEntries
(una entrada por elemento observado) que contiene las nuevas dimensiones del elemento.
const ro = new ResizeObserver( entries => {
for (const entry of entries) {
const cr = entry.contentRect;
console.log('Element:', entry.target);
console.log(`Element size: ${cr.width}px × ${cr.height}px`);
console.log(`Element padding: ${cr.top}px ; ${cr.left}px`);
}
});
// Observe one or multiple elements
ro.observe(someElement);
Consulta ResizeObserver
: Es como document.onresize
para elementos para obtener más detalles y ejemplos del mundo real.
Bloqueador de ventanas emergentes mejorado
Odio las pestañas inferiores. Ya sabes, ocurre cuando una página abre una ventana emergente en un destino Y navega por la página. Por lo general, uno de ellos es un anuncio o algo que no querías.
A partir de Chrome 64, se bloqueará este tipo de navegaciones y Chrome mostrará alguna IU nativa al usuario, lo que le permitirá seguir el redireccionamiento si lo desea.
import.meta
Cuando escribes módulos de JavaScript, a menudo necesitas acceder a metadatos específicos del host sobre el módulo actual. Chrome 64 ahora admite la propiedad import.meta
dentro de los módulos y expone la URL del módulo como import.meta.url
.
Esto es muy útil cuando quieres resolver recursos relacionados con el archivo del módulo en lugar del documento HTML actual.
Y mucho más.
Estos son solo algunos de los cambios en Chrome 64 para desarrolladores, por supuesto, hay muchos más.
- Chrome ahora admite capturas con nombre y escapadas de propiedades Unicode en expresiones regulares.
- El valor predeterminado de
preload
para los elementos<audio>
y<video>
ahora esmetadata
. Esto permite que Chrome se alinee con otros navegadores y ayuda a reducir el ancho de banda y el uso de recursos, ya que solo se cargan los metadatos y no el contenido multimedia en sí. - Ahora puedes usar
Request.prototype.cache
para ver el modo de caché de unRequest
y determinar si una solicitud es una solicitud de recarga. - Con la API de Focus Management, ahora puedes enfocar un elemento sin desplazarte hasta él con el atributo
preventScroll
.
window.alert()
Ah, y una más. Si bien en realidad no es una "función para desarrolladores", me pone contenta. window.alert()
ya no lleva una pestaña en segundo plano al primer plano. En su lugar, se mostrará la alerta cuando el usuario cambie a esa pestaña.
No más cambios de pestaña aleatorios porque algo activó un window.alert
en mí.
Te estoy mirando, viejo Calendario de Google.
Asegúrate de suscribirte a nuestro canal de YouTube. Recibirás una notificación por correo electrónico cada vez que lancemos un video nuevo.
Soy Pete LePage y, en cuanto se lance Chrome 65, estaré aquí para contarte las novedades.