Wstrzymywanie rysowania – ograniczanie bieli w przypadku nawigacji w tej samej domenie

Od jakiegoś czasu Chrome z niecierpliwością czeka, gdy przechodzi na nową stronę, aby mieć pewność, że strona się wczytuje. Ten krótki „błysk” oznacza, że podczas wczytywania strony przeglądarka wyświetla białą farbę. Może to być rozpraszające podczas przechodzenia między kolejnymi elementami nawigacji, zwłaszcza gdy strona rozwija się dość szybko, aby uzyskać ciekawszy stan.

Jednak w przypadku stron, które ładują się błyskawicznie, takie podejście negatywnie wpływa na wrażenia użytkowników. Animacja poniżej pokazuje, jak to wygląda obecnie.

Jesteśmy zagorzali wielbicielami tej strony i dlatego nie możemy się doczekać, żeby poprawić jakość obsługi. Zrobiliśmy to, używając nowego sposobu działania, jakim nazywamy „paint Holding”, w którym przeglądarka krótko czeka, zanim zacznie rysować. Zwłaszcza, gdy strona jest wystarczająco szybka. Dzięki temu strona będzie się renderować w całości, co zapewnia natychmiastową obsługę.

Działa to tak, że opóźniamy zatwierdzenia kompozytora do czasu osiągnięcia danego sygnału wczytywania strony (PLS) (np. pierwszego wyrenderowania treści / ustalonego czasu oczekiwania). Rozróżniamy zadania związane z renderowaniem w wątku głównym i zaangażowanie w wątek imple (tylko ten drugi jest odroczony). Poczekaj na wystąpienie PLS, co zmniejsza ryzyko błysków białego lub stałego koloru.

Celem tych zmian było zapewnienie płynnej nawigacji w Chrome między 2 stronami o tym samym pochodzeniu, a tym samym szybkości domyślnej nawigacji i bez przebłysków białego, jednolitego tła między starą a nową treścią.

Wypróbuj funkcję Paint Holding w Chrome Canary (Chrome 76) i daj nam znać, co o niej myślisz. Deweloperzy nie powinni się już martwić o modyfikowanie stron, aby z niej korzystać.