Timeouts und Intervalle von Hintergrund-Tabs in Chrome
Beim Testen der Präzision von setTimeout in Chrome wurde eine Diskrepanz beobachtet, als der Test in einem ausgeführt wurde Registerkarte „Hintergrund“. Es wurde festgestellt, dass die Zeitüberschreitungen und Intervalle deutlich langsamer ausgeführt wurden, als wenn die Registerkarte den Fokus hatte. Dieses Verhalten wurde in Firefox oder Internet Explorer nicht beobachtet.
Diese Beobachtung legt nahe, dass Chrome die JavaScript-Ausführung in Tabs, denen der Fokus fehlt, entweder anhält oder verlangsamt. Daher funktionieren Hintergrundaufgaben wie regelmäßige Serverüberprüfungen mithilfe von XHR- und setInterval-Aufrufen möglicherweise nicht wie vorgesehen.
Die zugrunde liegende Codeänderung, die für dieses Verhalten verantwortlich ist, wurde identifiziert. Wenn ein Tab inaktiv ist, wird die JavaScript-Funktion maximal einmal pro Sekunde aufgerufen, was eine Ressourcenoptimierung gewährleistet.
Diese Zeitüberschreitung und Intervallunterbrechung können zwar als Leistungssteigerung angesehen werden, schränken jedoch auch die Funktionalität von Hintergrundaufgaben ein . Eine Problemumgehung besteht darin, Web Worker zu verwenden, die einen separaten Thread für die kontinuierliche Ausführung bereitstellen, auch in Hintergrundregisterkarten.
Das obige ist der detaillierte Inhalt vonWarum sind Zeitüberschreitungen und Intervalle für Chrome-Hintergrund-Tabs langsamer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!