Tabs im Profil mobile (iOS) träge.

  • Betroffene App
    WoltLab Suite Core

    Mir ist aufgefallen, dass im Profil das wechseln der Tabs recht träge ist, wenn die Überschriften gescrollt werden müssen.

    Beispiel hier im Forum:

    Wenn ich auf den Tab „über mich“ gehe, dauert es bis zu 3 Sekunden, bis ich wieder eine Eingabe tätigen kann.

    Dies betrifft die mobile Webseite, die ich mit Safari oder Firefox auf iOS 13.4.1 öffne.

    Kann man das Laufzeitverhalten irgendwie anpassen?

  • Marcel Werk 17. April 2020 um 19:06

    Hat das Label von Nicht reproduzierbar auf Bestätigt geändert.
  • Alexander Ebert 28. April 2020 um 21:03

    Hat das Label 5.2.6 hinzugefügt.
  • Alexander Ebert 28. April 2020 um 21:03

    Hat das Label von Bestätigt auf Behoben geändert.
    • Offizieller Beitrag

    Eine kurze Erklärung, wie es zu diesem Problem kam, da es potentiell auch für Drittentwickler relevant ist.

    Mit iOS 13.4 gab es eine ganze Reihe an undokumentierten Änderungen in Safari, die das Verhalten von synthetischen Events verändert. Wenn der Nutzer eine Scrollbewegung auslöst, beispielsweise das Tab-Menü scrollt, gibt es nun eine mehrsekündige Sperrfrist, in dem im selben Container pauschal keine "click"-Events erzeugt werden. Wahrscheinlich sollen dadurch versehentliche Aktivierungen von Links verhindert werden, allerdings ist der Zeitraum so lange, dass dies bei gewollten Klicks zu einem Problem führt. Wenn man den Bildschirm schnell genug wiederholt antippt, kann man diesen Effekt praktisch unendlich lange ausdehnen.

    Als Lösung habe ich nun Event-Listener angelegt, die auf touchstart, touchmove und touchend reagieren. Ein synthetisches Click-Event wird prinzipiell ausgelöst, wenn es ein touchstart und ein touchend gibt, zwischen denen kein touchmove erzeugt wurde. Auf diese Weise lässt sich das Tab-Menü nun beliebig scrollen und Klicks auf einen Menüpunkt reagieren trotzdem sofort und ohne Verzögerung.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!