Chrome 77 wird jetzt eingeführt.
- Mit Largest Contentful Paint können Sie die Leistung Ihrer Website noch besser im Blick behalten.
- Neue Funktionen für Formulare
- Natives Lazy Loading ist da.
- Der Chrome DevSummit 2019 findet vom 11. bis 12. November 2019 statt.
- Und vieles mehr.
Ich bin Pete LePage. Sehen wir uns an, was in Chrome 77 für Entwickler neu ist.
Largest Contentful Paint
Es kann schwierig sein, die tatsächliche Leistung Ihrer Website zu verstehen und zu messen.
Messwerte wie load
oder DOMContentLoaded
geben Aufschluss darüber, was der Nutzer auf dem Bildschirm sieht. „First Paint“ und „First Contentful Paint“ erfassen nur den Anfang der Nutzererfahrung. „Inhalte weitgehend gezeichnet“ ist besser, aber komplex und manchmal falsch.
Die Largest Contentful Paint API, die ab Chrome 77 verfügbar ist, gibt die Renderingzeit des größten Inhaltselements im Darstellungsbereich an und ermöglicht es, zu messen, wann der Hauptinhalt der Seite geladen wird.
Wenn Sie den Largest Contentful Paint messen möchten, müssen Sie einen Leistungsbeobachter verwenden und nach largest-contentful-paint
-Ereignissen suchen.
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);
Da eine Seite oft in mehreren Schritten geladen wird, kann sich das größte Element auf einer Seite ändern. Sie sollten daher nur das letzte largest-contentful-paint
-Ereignis an Ihren Analysedienst senden.
addEventListener('visibilitychange', function fn() {
const visState = document.visibilityState;
if (lcp && visState === 'hidden') {
sendToAnalytics({'lcp': lcp});
removeEventListener('visibilitychange', fn, true);
}
}, true);
Phil hat einen tollen Beitrag über Largest Contentful Paint auf web.dev veröffentlicht.
Neue Funktionen für Formulare
Viele Entwickler erstellen benutzerdefinierte Formularsteuerelemente, um entweder das Aussehen und die Bedienung vorhandener Elemente anzupassen oder neue Steuerelemente zu erstellen, die nicht im Browser integriert sind. In der Regel ist dafür JavaScript und das versteckte <input>
-Element erforderlich. Das ist jedoch keine perfekte Lösung.
Mit zwei neuen Webfunktionen, die in Chrome 77 hinzugefügt wurden, lassen sich benutzerdefinierte Formularsteuerelemente einfacher erstellen und viele der bestehenden Einschränkungen werden aufgehoben.
Das formdata
-Ereignis
Das Ereignis formdata
ist eine Low-Level-API, mit der jeder JavaScript-Code an einer Formulareinreichung teilnehmen kann. Wenn Sie diese Funktion verwenden möchten, fügen Sie dem Formular, mit dem Sie interagieren möchten, einen formdata
-Ereignis-Listener hinzu.
const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
formData.append('my-input', myInputValue);
});
Wenn der Nutzer auf die Schaltfläche „Senden“ klickt, löst das Formular das Ereignis formdata
aus. Dieses enthält ein FormData
-Objekt, das alle gesendeten Daten enthält.
Anschließend kannst du in deinem formdata
-Ereignishandler die formdata
aktualisieren oder ändern, bevor sie gesendet wird.
Mit dem Formular verknüpfte benutzerdefinierte Elemente
Mit formularzugeordneten benutzerdefinierten Elementen können Sie die Lücke zwischen benutzerdefinierten Elementen und nativen Steuerelementen schließen. Wenn Sie eine statische formAssociated
-Property hinzufügen, wird dem Browser mitgeteilt, das benutzerdefinierte Element wie alle anderen Formularelemente zu behandeln. Sie sollten auch gängige Eigenschaften für Eingabeelemente wie name
, value
und validity
hinzufügen, um für Einheitlichkeit mit nativen Steuerelementen zu sorgen.
class MyCounter extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this._internals = this.attachInternals();
this._value = 0;
}
...
}
Weitere Informationen finden Sie unter Leistungsstärkere Formularsteuerelemente auf web.dev.
Natives Lazy Loading
Ich weiß nicht, wie ich das native Lazy Loading in meinem letzten Video übersehen habe. Es ist ziemlich erstaunlich, also füge ich es jetzt hinzu. Mit Lazy Loading können Sie das Laden nicht kritischer Ressourcen wie <img>
oder <iframe>
außerhalb des Bildschirms so lange verzögern, bis sie benötigt werden. So wird die Leistung Ihrer Seite verbessert.
Ab Chrome 76 übernimmt der Browser das Lazy Loading für Sie, ohne dass Sie benutzerdefinierten Lazy-Loading-Code schreiben oder eine separate JavaScript-Bibliothek verwenden müssen.
Wenn Sie dem Browser mitteilen möchten, dass ein Bild oder IFrame verzögert geladen werden soll, verwenden Sie das Attribut loading="lazy"
. Bilder und Iframes, die „above the fold“ sind, werden normal geladen. Die Elemente darunter werden erst abgerufen, wenn der Nutzer in ihre Nähe scrollt.
<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">
Weitere Informationen finden Sie unter Lazy Loading auf Browserebene für das Web auf web.dev.
Chrome Dev Summit 2019
Der Chrome Dev Summit findet am 11. und 12. November statt.
Es ist eine gute Gelegenheit, mehr über die neuesten Tools und Updates für die Webplattform zu erfahren und direkt vom Chrome-Entwicklerteam zu hören.
Die Veranstaltung wird live auf unserem YouTube-Kanal gestreamt. Wenn Sie persönlich teilnehmen möchten, können Sie auf der Website des Chrome Dev Summit 2019 eine Einladung anfordern.
…und vieles mehr
Das sind nur einige der Änderungen in Chrome 77 für Entwickler. Es gibt natürlich noch viele weitere.
Die Contact Picker API, die als Origin Trial verfügbar ist, ist eine neue On-Demand-Auswahl, mit der Nutzer einen oder mehrere Einträge aus ihrer Kontaktliste auswählen und eingeschränkte Details der ausgewählten Kontakte mit einer Website teilen können.
Außerdem gibt es neue Maßeinheiten in der intl.NumberFormat
API.
Weitere Informationen
Dies sind nur einige der wichtigsten Highlights. Unter den folgenden Links finden Sie weitere Informationen zu Änderungen in Chrome 77.
- Das ist neu in den Chrome-Entwicklertools (Version 77)
- Eingestellte und entfernte Funktionen in Chrome 77
- ChromeStatus.com-Updates für Chrome 77
- Neuerungen bei JavaScript in Chrome 77
- Liste der Änderungen am Chromium-Quellcode-Repository
Abonnieren
Wenn Sie über unsere Videos auf dem Laufenden bleiben möchten, abonnieren Sie unseren YouTube-Kanal für Chrome-Entwickler. Sie erhalten dann eine E-Mail-Benachrichtigung, sobald wir ein neues Video veröffentlichen.
Ich bin Pete LePage. Sobald Chrome 78 veröffentlicht wird, erzähle ich Ihnen hier, was es Neues in Chrome gibt.