- Obsługa
ResizeObservers
powiadomi Cię, gdy prostokąt treści elementu zmieni swój rozmiar. - Dzięki import.meta moduły mogą teraz uzyskiwać dostęp do metadanych hosta.
- Blokowanie wyskakujących okienek jest silne.
window.alert()
nie zmienia już punktu skupienia.
A to nie wszystko – to tylko część.
Mam na imię Pete LePage. Sprawdź, co nowego w Chrome 64 dla deweloperów.
Chcesz zobaczyć pełną listę zmian? Sprawdź listę zmian w repozytorium źródłowym Chromium.
ResizeObserver
Śledzenie zmian rozmiaru elementu może być uciążliwe. Najprawdopodobniej dodasz detektor do zdarzenia resize
dokumentu, a potem wywołasz metodę getBoundingClientRect
lub getComputedStyle
. Oba te rozwiązania mogą jednak powodować utratę wydajności układu.
A co, jeśli rozmiar okna przeglądarki się nie zmienił, ale do dokumentu został dodany nowy element? Czy dodasz display: none
do elementu? Oba te elementy mogą zmieniać rozmiar innych elementów na stronie.
ResizeObserver
informuje o każdej zmianie rozmiaru elementu i podaje jego nową wysokość i szerokość, co zmniejsza ryzyko niestabilności układu.
Podobnie jak w przypadku innych obserwatorów, korzystanie z tego typu jest bardzo proste. Utwórz obiekt ResizeObserver
i przekaż wywołanie zwrotne do konstruktora. Funkcja wywołania zwrotnego otrzyma tablicę ResizeOberverEntries
(jeden wpis na każdy obserwowany element), która zawiera nowe wymiary elementu.
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);
Więcej informacji i przykładów znajdziesz w artykule ResizeObserver
: document.onresize
dla Elementów.
Ulepszone blokowanie wyskakujących okienek
Nie cierpię kart pod spodem. Znasz je, gdy strona otwiera wyskakujące okienko z przekierowaniem do jakiegoś miejsca i przechodzi do tej strony. Zwykle jest to reklama lub coś, czego nie chcesz.
Od wersji 64 Chrome takie przejścia będą blokowane, a przeglądarka wyświetli użytkownikowi część natywnego interfejsu użytkownika, aby umożliwić mu przejście na inną stronę, jeśli zechce.
import.meta
Podczas pisania modułów JavaScripta często potrzebny jest dostęp do metadanych dotyczących bieżącego modułu, które są specyficzne dla hosta. Chrome 64 obsługuje teraz właściwość import.meta
w modułach i ujawnia adres URL modułu jako import.meta.url
.
Jest to bardzo przydatne, gdy chcesz rozwiązać zasoby w powiązaniu z pliku modułu, a nie bieżącego dokumentu HTML.
I inne funkcje
To tylko kilka z wielu zmian w Chrome 64 przeznaczonych dla deweloperów.
- Chrome obsługuje teraz nazwane uchwyty i znaki ucieczki właściwości Unicode w wyrażeniach regularnych.
- Domyślna wartość
preload
dla elementów<audio>
i<video>
to terazmetadata
. Dzięki temu Chrome będzie działać tak samo jak inne przeglądarki i pomoże zmniejszyć wykorzystanie przepustowości i zasobów, wczytując tylko metadane, a nie same multimedia. - Teraz możesz użyć
Request.prototype.cache
, aby wyświetlić tryb pamięci podręcznejRequest
i określić, czy żądanie to żądanie ponownego załadowania. - Dzięki interfejsowi Focus Management API możesz teraz ustawić element w centrum bez przewijania za pomocą atrybutu
preventScroll
.
window.alert()
Jeszcze jedno. Chociaż nie jest to „funkcja dla deweloperów”, cieszy mnie to. window.alert()
nie powoduje już wyświetlania karty w tle na pierwszym planie. Zamiast tego alert będzie wyświetlany, gdy użytkownik przełączy się na tę kartę.
Nie ma już przypadkowego przełączania kart, ponieważ coś wywołało u mnie window.alert
.
Widzę Twój stary Kalendarz Google.
Zasubskrybuj nasz kanał w YouTube, aby otrzymywać e-maile z powiadomieniami o publikowaniu nowych filmów.
Nazywam się Pete LePage i zaraz po wydaniu Chrome 65 opowiem Ci, co nowego w Chrome.