Ich habe kürzlich bemerkt, dass Animationen in Safari auf meinem M1-basierten 2020 MacBook Air ziemlich stark ruckelten, und bin der Sache nachgegangen, um herauszufinden, warum.
Das Warum
Das war kein Bug. Das war ein Feature.
Standardmäßig aktiviert macOS Monterey den "Energiesparmodus" im Akkubetrieb und deaktiviert ihn beim Anschluss eines Netzteils. Safari scheint so programmiert zu sein, dass es diese Einstellung interpretiert und die Anzahl der Bildschirmaktualisierungen reduziert, um die Akkulaufzeit zu verlängern.
Auf meinem MacBook Air bedeutet das von 60fps auf 30fps.
Ich habe mir den Kopf zerbrochen, warum meine Website auf dem brandneuen M1-Chip ins Stocken geriet. Ehrlich gesagt, vielen Dank! Ich kann jetzt ruhen… Und wachsen ausgefallene Haare wieder nach, oder?
Was wäre, wenn wir `will-change` oder `contain-visibility` einführen würden? Das würde wahrscheinlich interessant werden.
Die Mehrheit der Benutzer wird einfach denken, dass die Seite, die sie betrachten, ein schwerfälliger, aufgeblähter Haufen Müll ist.
Es sollte zumindest eine Meldung geben, wenn der Akku läuft. Ich bin sicher, es gibt stromhungrigere Animationen, z. B. Videos, um einen Akku schnell zu entleeren.
Ich halte das für monströs übertrieben. Wie viel Akkulaufzeit spart das wirklich? Wenn die Antwort "nicht viel" lautet, dann sollte das nicht sein, und wenn die Antwort "eine beträchtliche Menge" lautet, dann ist das ziemlich erbärmlich für eine ansonsten starke Maschine.
Ja, ich denke, es gibt ein Problem mit den Pro-Motion-Displays und dem "request animation frame" in Safari. Ich sehe nicht, dass es auf 30 fps fällt, aber wahrscheinlich eher auf 10 fps. Scheint etwas zu sein, das in einem Update behoben werden sollte und nicht wert ist, sich darüber aufzuregen.