Zakłócenie / zawieszenie zakładki Chrome po przeniesieniu na pierwszy plan na długi czas w tle

Mam stronę, która pokazuje statystyki w czasie rzeczywistym. Działa dużo javascript, wykonuje wiele żądań HTTP, renderuje wykresy SVG co kilka sekund przy użyciu D3.js, ma wiele animacji CSS i często zmienia układ DOM.

Dopóki strona jest skupiona, działa płynnie. Jeśli przełączę się na inną kartę i wrócę później, często pojawia się krótka pauza, w której strona wydaje się być zamrożona, zanim widok nagle wydaje się ponownie odtwarzać, a strona staje się ponownie użyteczna. Im dłużej tło jest zaznaczone, tym dłuższa jest ta pauza. Jeśli karta była w tle przez bardzo długi czas (godziny) i przełączam się z powrotem na nią, zostanie ona zamrożona na długi czas, a następnie ulegnie awarii.

Wszystkie te zachowania są obserwowane w Chrome. Nie testowałem zbyt wiele w innych przeglądarkach.

Co nie robi Chrome, gdy karta jest w tle, i co robi podczas tej przerwy, kiedy po raz pierwszy wracam do karty?

AKTUALIZACJA:

Wykonuję także animację jQuery.Ta odpowiedź iten może być istotne.

Zgodnie z tą pierwszą odpowiedzią:

„Nieaktywne karty przeglądarki buforują niektóre funkcje setInterval lub setTimeout”.

stop (true, true) zatrzyma wszystkie buforowane zdarzenia i wykona natychmiast tylko ostatnią animację.

Dodałem wywołanie do .stop (prawda, prawda) w moim kodzie, a przynajmniej na krótkie wycieczki z dala od karty, nie wykryłem czkawki. Muszę pozostawić go w tle na długi czas i przetestować, zanim zdołam stwierdzić, czy ma to znaczącą różnicę.

questionAnswers(2)

yourAnswerToTheQuestion