Eine Touch-Event-Verzögerung, die sich nicht so leicht bekämpfen lässt

Das Geheimnis der 300ms
Kommentare

Als Webentwickler sind wir in der komfortablen Situation, dass wir eine große Fülle von Devices mit unseren Kenntnissen bedienen können. Browser sind faktisch überall vorhanden; somit können wir mit unseren – im besten Fall für mobile Devices optimierten Websites – also überall mitspielen. Dennoch gibt es da eine Kleinigkeit, welche die Vorfreude regelmäßig trübt: der 300-Millisekunden-Click-Delay.

Das Mobile Web kämpft nämlich gerade auf Smartphones mit dem Phänomen, dass ein Click-Event auf einem Touchscreen erst nach 300 Millisekunden gefeuert wird. Und das führt zu einem unangenehmen Gefühl von schlechter Performance. Jake Archibald von Google sieht darin einen der Gründe, warum Apps beliebter sind als mobile Websites:

Unfortunately every touch-based mobile browser, across platforms, has an artificial ~300ms delay between you tapping a thing on the screen and the browser considering it a „click“. When people think of the web as being sluggish compared to native apps on mobile, this is this one of the main contributors.

In einem Post auf HTML5rocks erklärt er Hintergründe und Lösungsansätze.

Das Problem hat einen einfachen Grund: Der Double Tap, der in erster Linie dazu dient, in eine Website zu zoomen. Würde man die Verzögerung entfernen, wäre ein Zoomen mit Hilfe des Double Taps nicht mehr möglich.

Googles Ansatz besteht übrigens darin, den Delay zu entfernen, wenn der Viewport einer Website mit width=device-width angegeben ist – dann ist nämlich idealerweise davon auszugehen, dass die Website auf das Device angepasst ist.

Yeah but, no but, yeah but, no

Das Ziel ist also klar: Die 300 Millisekunden müssen weg! Ganz so einfach ist das aber nicht, wie Peter-Paul Koch in seinem Blogpost Suppressing the 300ms click delay erklärt. Er hat sich nämlich damit beschäftigt, wie man den Delay los wird und ist dabei – wenig erstaunlich – zu dem Ergebnis gekommen, dass es ganz vom Browser abhängt. und das sind die Ergebnisse im Detail:

  • Im Safari ist es nicht möglich, den Delay zu eliminieren. Der Grund dafür liegt darin begraben, dass der Safari zusätzlich zum Zoom mit dem Double Tap auch das Thema Scrollen verbindet – das macht sonst kein anderer Browser.
  • Chrome, Opera und UC9 entfernen die Verzögerung bei width=device-width. Für Firefox auf Android funktioniert das jedoch nicht.
  • Chrome, Opera, BlackBerry und Firefox Android unterdrücken den Delay auch bei user-scalable=no.
  • Die gerade genannten plus UC9 und Dolphin unterdrücken den Delay bei initial-scale=1,minimum-sclae=1,maximum-scale=1.
  • Der Internet Explorer 10 macht alles ganz anders.

Es gibt Dinge, mit denen wir uns offensichtlich auch noch in Zukunft werden herumärgern müssen – und die Verzögerung beim Click Event auf mobilen Websites scheint vorerst dazuzugehören.

Aufmacherbild: An orange and black diamond shaped road sign with the words EXPECT DELAYS von Shutterstock / Urheberrecht: Keith Bell

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -