Oto, co musisz wiedzieć na ten temat:
- Jest nowy kod stanu HTTP 103, który pomaga przeglądarce zdecydować, jakie treści wstępnie wczytać, zanim strona zacznie się wczytywać.
- Interfejs Local Font Access API umożliwia aplikacjom internetowym wyliczanie i używanie czcionek zainstalowanych na komputerze użytkownika.
AbortSignal.timeout()
to prostszy sposób implementowania limitów czasu w przypadku asynchronicznych interfejsów API.- I to nie wszystko .
Nazywam się Pete LePage. Przyjrzyjmy się bliżej nowościom w Chrome 103 dla deweloperów.
Kod stanu HTTP 103
Jednym ze sposobów na poprawę wydajności strony jest użycie wskazówek dotyczących zasobów. Podają one przeglądarce „wskazówki” dotyczące tego, czego może potrzebować w przyszłości. Na przykład: wstępne wczytywanie plików lub połączenie z innym serwerem.
<link as="font" crossorigin="anonymous"
href="..." rel="preload">
<link as="font" crossorigin="anonymous"
href="..." rel="preload">
<link href="cdn.example.com"
rel="preconnect">
Przeglądarka może jednak działać zgodnie z tymi wskazówkami dopiero po tym, jak serwer wyśle co najmniej część strony.
Wyobraź sobie, że przeglądarka wysyła żądanie strony, ale serwer potrzebuje kilkuset milisekund na jej wygenerowanie. Dopóki przeglądarka nie zacznie odbierać strony, ta po prostu czeka. Jeśli jednak serwer wie, że strona zawsze będzie potrzebować określonego zestawu zasobów podrzędnych, np. pliku CSS, kodu JavaScript i kilku obrazów, może natychmiast odpowiedzieć nowym kodem stanu HTTP 103 Early Hints i poprosić przeglądarkę o wstępne załadowanie tych zasobów podrzędnych.
Następnie, gdy serwer wygeneruje stronę, może ją wysłać z normalną odpowiedzią HTTP 200. Gdy strona się wczytuje, przeglądarka już zaczęła wczytywać wymagane zasoby.
Jest to nowy kod stanu HTTP, więc jego użycie wymaga aktualizacji serwera.
Pierwsze kroki z HTTP 103 Wskazówki wstępne:
- Wprowadzenie do wczesnych wskazówek
- Konfiguracja Apache 2 Early Hints
- Korzystanie z wczesnych podpowiedzi w Cloudflare
- Wykraczanie poza serwer: kod stanu 103 wczesne wskazówki
Interfejs Local Fonts Access API
Czcionki w internecie zawsze były wyzwaniem, zwłaszcza w przypadku aplikacji, które umożliwiają użytkownikom tworzenie własnych grafik i projektów. Do tej pory aplikacje internetowe mogły używać tylko czcionek internetowych. Nie było możliwości uzyskania listy czcionek zainstalowanych na komputerze użytkownika. Nie było też możliwości uzyskania dostępu do pełnych danych tabeli czcionek, co jest kluczowe, jeśli chcesz zaimplementować własny niestandardowy zestaw tekstów.
Nowy interfejs Local Font Access API umożliwia aplikacjom internetowym wyliczanie czcionek lokalnych na urządzeniu użytkownika oraz zapewnia dostęp do danych tabeli czcionek.
Aby uzyskać listę czcionek zainstalowanych na urządzeniu, musisz najpierw poprosić o pozwolenie.
// Ask for permission to use the API
try {
const status = await navigator.permissions.request({
name: 'local-fonts',
});
if (status.state !== 'granted') {
throw new Error('No Permission.');
}
} catch (err) {
if (err.name !== 'TypeError') {
throw err;
}
}
Następnie zadzwoń pod numer window.queryLocalFonts()
. Zwraca tablicę wszystkich czcionek zainstalowanych na urządzeniu użytkownika.
const opts = {};
const pickedFonts = await self.queryLocalFonts();
for (const fontData of pickedFonts) {
console.log(fontData.postscriptName);
console.log(fontData.fullName);
console.log(fontData.family);
console.log(fontData.style);
}
Jeśli interesuje Cię tylko podzbiór czcionek, możesz go odfiltrować, dodając parametr postscriptNames
.
const opts = {
postscriptNames: [
'Verdana',
'Verdana-Bold',
'Verdana-Italic',
],
};
const pickedFonts = await self.queryLocalFonts(opts);
Aby uzyskać więcej informacji, przeczytaj artykuł Toma Używanie zaawansowanej typografii z czcionkami lokalnymi na stronie web.dev.
Łatwiejsze ustawianie czasu oczekiwania dzięki funkcji AbortSignal.timeout()
W języku JavaScript funkcje AbortController
i AbortSignal
służą do anulowania wywołania asynchronicznego.
Na przykład podczas wysyłania żądania fetch()
możesz utworzyć obiekt AbortSignal
i przekazać go do obiektu fetch()
. Jeśli chcesz anulować fetch()
, zanim wróci, wywołaj funkcję abort()
w instancji AbortSignal
. Do tej pory, aby przerwać po upływie określonego czasu, trzeba było umieścić je w polu setTimeout()
.
const controller = new AbortController();
const signal = controller.signal;
const resp = fetch(url, { signal });
setTimeout(() => {
// abort the fetch after 6 seconds
controller.abort();
}, 6000);
Na szczęście dzięki nowej metodzie statycznej timeout()
w klasie AbortSignal
jest to teraz łatwiejsze. Zwraca obiekt AbortSignal
, który jest automatycznie anulowany po określonej liczbie milisekund. Dawniej to tylko 1 wiersz kodu, a obecnie jest tylko jeden.
const signal = AbortSignal.timeout(6000);
const resp = fetch(url, { signal });
Znak AbortSignal.timeout()
jest obsługiwany w Chrome 103 i jest już używany w Firefoksie i Safari.
I inne funkcje
Oczywiście jest ich znacznie więcej.
- Format pliku obrazu
avif
można teraz udostępniać za pomocą funkcji udostępniania w sieci - Chromium dopasowuje się teraz do Firefoksa, wywołując
popstate
natychmiast po zmianie adresu URL. Na obu platformach kolejność zdarzeń to:popstate
, a potemhashchange
. Element.isVisible()
informuje z kolei, czy dany element jest widoczny.
Więcej informacji
To tylko niektóre z najważniejszych informacji. Aby poznać inne zmiany w Chrome 103, kliknij linki poniżej.
- Nowości w Narzędziach deweloperskich w Chrome (103)
- Chrome 103 – wycofane i usunięte funkcje
- Aktualizacje ChromeStatus.com dotyczące Chrome 103
- Lista zmian w repozytorium kodu Chromium
- Kalendarz wydań Chrome
Subskrybuj
Aby być na bieżąco, zasubskrybuj kanał w YouTube dla programistów Chrome. Otrzymasz wtedy e-maila z powiadomieniem, gdy tylko opublikujemy nowy film.
Jestem Pete LePage i gdy tylko Chrome 104 się ukaże, od razu powiem, co nowego w tej przeglądarce.