Oto, co musisz wiedzieć na ten temat:
- W interfejsie Screen Capture API wprowadzono nowe właściwości, które usprawniają udostępnianie ekranu.
- Teraz możesz dokładnie określić, czy dany zasób na stronie blokuje renderowanie, czy nie.
W ramach testów wersji źródłowej udostępniliśmy nowy sposób przesyłania danych do serwera backendu za pomocą deklaratywnego interfejsu PendingBeacon API. I to nie wszystko.
Nazywam się Adriana Jara. Przyjrzyjmy się bliżej nowościom w Chrome 107 dla deweloperów.
Nowe właściwości w interfejsie Screen Capture API
W tej wersji interfejs Screen Capture API dodaje nowe właściwości, które ulepszają udostępnianie ekranu.
Właściwość DisplayMediaStreamOptions
została dodana do selfBrowserSurface
. Dzięki temu podpowiedzi aplikacja może poinformować przeglądarkę, że podczas wywoływania getDisplayMedia()
powinna wykluczyć bieżącą kartę.
// Exclude the streaming tab
const options = {
selfBrowserSurface: 'exclude',
};
const stream = await navigator
.mediaDevices
.getDisplayMedia(options);
Pomaga to uniknąć przypadkowego uchwycenia siebie na filmie i efektu „Hall of Mirrors” podczas rozmów wideo.
Usługa DisplayMediaStreamOptions
ma teraz też właściwość surfaceSwitching
.
Ta właściwość dodaje opcję umożliwiającą sterowanie programowo tym, czy Chrome ma wyświetlać przycisk przełączania kart podczas udostępniania ekranu. Te opcje zostaną przekazane do getDisplayMedia()
. Przycisk Share this tab instead
umożliwia użytkownikom przełączanie się na nową kartę bez konieczności wracania do karty wideokonferencji ani wybierania z długiej listy kart. To zachowanie jest wyświetlane warunkowo na wypadek, gdyby aplikacja internetowa nie obsługiwała tej funkcji.
// Show the switch to this tab button
const options = {
surfaceSwitching: 'include',
};
const stream = await navigator
.mediaDevices
.getDisplayMedia(options);
MediaTrackConstraintSet
dodaje też właściwość displaySurface
. Gdy wywoływana jest funkcja getDisplayMedia()
, przeglądarka oferuje użytkownikowi wybór powierzchni wyświetlania: kart, okien lub monitorów. Korzystając z ograniczenia displaySurface
, aplikacja internetowa może teraz podawać wskazówkę dla przeglądarki, jeśli preferuje, że jeden z typów powierzchni ma być lepiej widoczny.
Może to na przykład zapobiegać przypadkowemu udostępnianiu zasobów, ponieważ domyślnie można udostępnić tylko jedną kartę.
Określ zasoby blokujące renderowanie
Niezawodne informacje o wydajności strony są kluczowe dla deweloperów, którzy chcą zapewnić użytkownikom szybkie działanie. Do tej pory deweloperzy korzystali z kompleksowych heurystyk, aby określić, czy dany zasób blokuje renderowanie.
Interfejs Performance API zawiera teraz właściwość renderBlockingStatus, która przekazuje bezpośredni sygnał z przeglądarki, który identyfikuje zasoby uniemożliwiające wyświetlenie strony, dopóki nie zostaną pobrane.
Fragment kodu pokazuje, jak uzyskać listę wszystkich zasobów i użyć nowej właściwości renderBlockingStatus, aby wyświetlić listę wszystkich zasobów, które blokują renderowanie.
// Get all resources
const res = window.performance.getEntriesByType('resource');
// Filter to get only the blocking ones
const blocking = res.filter(({renderBlockingStatus}) =>
renderBlockingStatus === 'blocking');
Optymalizacja sposobu wczytywania zasobów pomaga poprawić podstawowe wskaźniki internetowe i zapewnić lepsze wrażenia użytkownika. Aby dowiedzieć się więcej o interfejsie Performance API, poszukaj w dokumentacji MDN zasobów blokujących renderowanie i je zoptymalizuj.
Testowanie origin interfejsu PendingBeacon API
Deklaratoryczny interfejs API PendingBeacon umożliwia przeglądarce kontrolowanie czasu wysyłania beaconów.
Beacon to pakiet danych wysyłany na serwer backendu bez oczekiwania na konkretną odpowiedź.
Aplikacje często chcą wysyłać te beacony pod koniec wizyty użytkownika, ale nie ma dobrego czasu na wykonanie tego wezwania. Ten interfejs API przekazuje wysyłanie wiadomości do samej przeglądarki, dzięki czemu może obsługiwać obrazy typu beacon w systemie page unload
lub w systemie page hide
bez konieczności wdrażania przez programistę wywołań wysyłania we właściwym czasie.
Zarejestruj się na okres próbny wersji oryginalnej, wypróbuj interfejs API i prześlij opinię, abyśmy mogli ulepszyć przypadki użycia.
I inne funkcje
Oczywiście dostępnych jest też znacznie więcej.
- Nagłówek HTTP
expect-ct
został wycofany. - Atrybut
rel
jest teraz obsługiwany w elementach<form>
. - Ostatnio wspomniałem o
grid-template
interpolacji, tym razem powinna być uwzględniona.
Więcej informacji
Obejmuje to tylko niektóre najważniejsze informacje. Aby dowiedzieć się więcej o dodatkowych zmianach w Chrome 107, kliknij linki poniżej.
- Nowości w Narzędziach deweloperskich w Chrome (107)
- Wycofanie i usuwanie Chrome 107
- Aktualizacje ChromeStatus.com dla Chrome 107
- Lista zmian w repozytorium kodu Chromium
- Kalendarz wydań Chrome
Subskrybuj
Zasubskrybuj kanał Chrome Developers w YouTube, aby być na bieżąco z informacjami o nowym filmie. Dzięki temu będziesz otrzymywać e-maila z powiadomieniem.
Nazywam się Adriana Jara i jak tylko pojawi się nowa wersja Chrome 108, opowiem Ci, co nowego w Chrome.