Nowości w Chrome 72

W Chrome 72 dodaliśmy obsługę tych funkcji:

  • Tworzenie pól klas publicznych w JavaScripcie jest teraz znacznie łatwiejsze.
  • Możesz sprawdzić, czy strona została aktywowana za pomocą nowego interfejsu User Activation API
  • Lokalizowanie list staje się dużo łatwiejsze dzięki interfejsowi API Intl.format().

A jest to wiele innych!

Nazywam się Pete LePage. Sprawdźmy, co nowego dla deweloperów w Chrome 72.

Historia zmian

To tylko niektóre z najważniejszych zmian. Aby poznać dodatkowe zmiany w Chrome 72, kliknij linki poniżej.

Pola klas publicznych

Mój pierwszy język to Java, a nauka JavaScriptu zapętliła. Jak utworzyć zajęcia? Czy może też dziedziczenie? A co z publicznymi i prywatnymi metodami i metodami? Wiele z ostatnich aktualizacji JavaScriptu, które znacznie ułatwiają programowanie zorientowane na obiekty.

Mogę teraz tworzyć klasy, które działają zgodnie z oczekiwaniami, wraz z konstruktorami, metodami pobierania i ustawiania, metodami statycznymi i właściwościami publicznymi.

V8 7.2, który jest częścią Chrome 72, umożliwia deklarowanie pól klas publicznych bezpośrednio w definicji klasy, dzięki czemu nie trzeba tego robić z poziomu konstruktora.

class Counter {
  _value = 0;
  get value() {
    return this._value;
  }
  increment() {
    this._value++;
  }
}

const counter = new Counter();
console.log(counter.value);
// → 0
counter.increment();
console.log(counter.value);
// → 1

Pracujemy nad obsługą pól zajęć prywatnych.

Więcej informacji znajdziesz w artykule Mathiasa o polach zajęć.

Interfejs User Activation API

Pamiętasz, kiedy strony mogły automatycznie odtwarzać dźwięk zaraz po wczytaniu strony? Możesz starać się nacisnąć klawisz wyciszania albo dowiedzieć się, która to karta, i zamknąć ją. Dlatego niektóre interfejsy API wymagają aktywacji za pomocą gestu użytkownika, zanim będą mogły działać. Przeglądarki obsługują aktywację na różne sposoby.

Interfejs User aktywujący interfejs API przed i po interakcji użytkownika ze stroną.

W Chrome 72 wprowadzamy funkcję Aktywacja użytkowników w wersji 2, która upraszcza aktywację użytkowników we wszystkich interfejsach API objętych ograniczeniami. Opiera się ona na nowej specyfikacji, która ma ujednolicić sposób działania aktywacji we wszystkich przeglądarkach.

Istnieje nowa właściwość userActivation zarówno w przypadku elementów navigator, jak i MessageEvent, która ma 2 usługi: hasBeenActive i isActive:

  • hasBeenActive wskazuje, czy w powiązanym oknie w trakcie cyklu życia wystąpiła wcześniej aktywacja użytkownika.
  • isActive wskazuje, czy w cyklu życia powiązane okno jest obecnie aktywowane przez aktywację użytkownika.

Więcej informacji znajdziesz w artykule Zapewnianie spójności aktywacji użytkowników we wszystkich interfejsach API.

Lokalizacja treści listy rzeczy za pomocą usługi Intl.format

Bardzo lubię Intl interfejsy API – bardzo przydają się one do lokalizowania treści na inne języki. W Chrome 72 dostępna jest nowa metoda .format(), która ułatwia renderowanie list. Podobnie jak inne interfejsy API Intl przenosi obciążenie na mechanizm JavaScript bez negatywnego wpływu na wydajność.

Zainicjuj go wybranym językiem, a następnie wywołaj format. Użyje ono prawidłowych słów i składni. Możesz stosować spójniki, czyli zlokalizowane odpowiedniki słowa and (i zwróć uwagę na te piękne oksfordki). Może robić odstępy, dodając lokalny odpowiednik funkcji lub. Zapewnia też dodatkowe opcje, dzięki czemu można zrobić jeszcze więcej.

const opts = {type: 'disjunction'};
const lf = new Intl.ListFormat('fr', opts);
lf.format(['chien', 'chat', 'oiseau']);
// → 'chien, chat ou oiseau'
lf.format(['chien', 'chat', 'oiseau', 'lapin']);
// → 'chien, chat, oiseau ou lapin'

Więcej informacji znajdziesz w poście na temat interfejsu Intl.ListFormat API.

…i wiele innych.

To tylko kilka ze zmian wprowadzonych w Chrome 72 dla deweloperów, oczywiście jest ich znacznie więcej.

  • Chrome 72 zmienia działanie Cache.addAll(), aby lepiej dopasować je do specyfikacji. Wcześniej, jeśli w tym samym wywołaniu znajdowały się zduplikowane wpisy, kolejne żądania powodowały po prostu zastąpienie pierwszego. Aby zapewnić zgodność ze specyfikacją, jeśli istnieją zduplikowane wpisy, zostaną one odrzucone z użyciem InvalidStateError.
  • Żądania favikon są teraz obsługiwane przez skrypt service worker, o ile adres URL żądania znajduje się w tym samym źródle co skrypt service worker.

Zasubskrybuj

Jeśli chcesz być na bieżąco z naszymi filmami, zasubskrybuj kanał dla deweloperów Chrome w YouTube, a za każdym razem, gdy opublikujemy nowy film, otrzymasz e-maila z powiadomieniem.

Nazywam się Pete LePage i jak tylko pojawi się Chrome 73, zajmę się tym, co nowego w Chrome.