Chrome 77 ya está disponible.
- Existe una mejor manera de hacer un seguimiento del rendimiento de tu sitio con Largest Contentful Paint.
- Los formularios obtienen algunas funciones nuevas.
- La carga diferida nativa ya está disponible.
- Chrome DevSummit 2019 se llevará a cabo del 11 al 12 de noviembre de 2019.
- Y mucho más.
Soy Pete LePage. Comencemos a ver las novedades para desarrolladores en Chrome 77.
Procesamiento de imagen con contenido más grande
Comprender y medir el rendimiento real de tu sitio puede ser difícil.
Las métricas como load
o DOMContentLoaded
no te indican lo que el usuario ve en la pantalla. El primer procesamiento de imagen y el primer procesamiento de imagen con contenido solo capturan el comienzo de la experiencia. El primer procesamiento de imagen significativa es mejor, pero es complejo y, a veces, incorrecto.
La API de Largest Contentful Paint, disponible a partir de Chrome 77, informa el tiempo de renderización del elemento de contenido más grande visible en el viewport y permite medir cuándo se carga el contenido principal de la página.
Para medir el procesamiento de imagen con contenido más grande, deberás usar un observador de rendimiento y buscar eventos largest-contentful-paint
.
let lcp;
const po = new PerformanceObserver((eList) => {
const e = eList.getEntries();
const last = e[e.length - 1];
lcp = last.renderTime || last.loadTime;
});
const poOpts = {
type: 'largest-contentful-paint',
buffered: true
}
po.observe(poOpts);
Dado que una página suele cargarse en etapas, es posible que cambie el elemento más grande de una página, por lo que solo debes informar el último evento largest-contentful-paint
a tu servicio de estadísticas.
addEventListener('visibilitychange', function fn() {
const visState = document.visibilityState;
if (lcp && visState === 'hidden') {
sendToAnalytics({'lcp': lcp});
removeEventListener('visibilitychange', fn, true);
}
}, true);
Phil tiene una excelente publicación sobre el Procesamiento de imagen con contenido más grande en web.dev.
Nuevas funciones de los formularios
Muchos desarrolladores crean controles de formulario personalizados, ya sea para personalizar el aspecto de los elementos existentes o para crear controles nuevos que no están integrados en el navegador. Por lo general, esto implica usar JavaScript y elementos <input>
ocultos, pero no es una solución perfecta.
Dos nuevas funciones web, agregadas en Chrome 77, facilitan la compilación de controles de formulario personalizados y quitan muchas de las limitaciones existentes.
El evento formdata
El evento formdata
es una API de bajo nivel que permite que cualquier código JavaScript participe en el envío de un formulario. Para usarlo, agrega un objeto de escucha de eventos formdata
al formulario con el que deseas interactuar.
const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
formData.append('my-input', myInputValue);
});
Cuando el usuario hace clic en el botón de envío, el formulario activa el evento formdata
, que incluye un objeto FormData
que contiene todos los datos que se envían.
Luego, en tu controlador de eventos formdata
, puedes actualizar o modificar el formdata
antes de que se envíe.
Elementos personalizados asociados con el formulario
Los elementos personalizados asociados con el formulario ayudan a cerrar la brecha entre los elementos personalizados y los controles nativos. Agregar una propiedad formAssociated
estática le indica al navegador que trate el elemento personalizado como todos los demás elementos del formulario. También debes agregar las propiedades comunes que se encuentran en los elementos de entrada, como name
, value
y validity
, para garantizar la coherencia con los controles nativos.
class MyCounter extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this._internals = this.attachInternals();
this._value = 0;
}
...
}
Consulta Controles de formularios más capaces en web.dev para obtener todos los detalles.
Carga diferida nativa
No sé cómo me perdí la carga diferida nativa en mi último video. Es bastante asombroso, así que lo incluiré ahora. La carga diferida es una técnica que te permite diferir la carga de recursos no críticos, como <img>
o <iframe>
fuera de pantalla, hasta que sean necesarios, lo que aumenta el rendimiento de tu página.
A partir de Chrome 76, el navegador controla la carga diferida por ti, sin necesidad de escribir código de carga diferida personalizado ni usar una biblioteca de JavaScript independiente.
Para indicarle al navegador que deseas una imagen o un iframe cargado de forma diferida, usa el atributo loading="lazy"
. Las imágenes y los iframes que se encuentran "en la mitad superior de la página" se cargan de forma normal. Y los que están debajo solo se recuperan cuando el usuario se desplaza cerca de ellos.
<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">
Consulta Carga diferida a nivel del navegador para la Web en web.dev para obtener más información.
Chrome Dev Summit 2019
La Chrome Dev Summit se llevará a cabo el 11 y 12 de noviembre.
Es una gran oportunidad para conocer las herramientas y actualizaciones más recientes que se implementarán en la plataforma web, y escuchar directamente al equipo de ingeniería de Chrome.
Se transmitirá en vivo en nuestro canal de YouTube. Si quieres asistir en persona, puedes solicitar tu invitación en el sitio web de la Chrome Dev Summit 2019.
Y mucho más.
Estos son solo algunos de los cambios implementados en Chrome 77 para desarrolladores, por supuesto, hay muchos más.
La API de Contact Picker, disponible como prueba de origen, es un nuevo selector on demand que permite a los usuarios seleccionar una o varias entradas de su lista de contactos y compartir detalles limitados de los contactos seleccionados con un sitio web.
Además, hay nuevas unidades de medida en la API de intl.NumberFormat
.
Lecturas adicionales
Esto solo abarca algunos de los aspectos más destacados. Consulta los vínculos que aparecen a continuación para ver más cambios en Chrome 77.
- Novedades de las Herramientas para desarrolladores de Chrome (77)
- Salidas de servicio y eliminaciones de Chrome 77
- Actualizaciones de ChromeStatus.com para Chrome 77
- Novedades de JavaScript en Chrome 77
- Lista de cambios del repositorio de código fuente de Chromium
Suscribirse
Si quieres mantenerte al tanto de nuestros videos, suscríbete a nuestro canal de YouTube de Desarrolladores de Chrome y 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 78, estaré aquí para contarte las novedades.