PDA

View Full Version : Tap vs Click 300ms delay?



Kikketer
28 Feb 2014, 8:12 AM
I was wondering if anyone has experienced the 300ms click delay in their builds of Sencha Touch. I had assumed Sencha Touch was using something like "fastclick" to remove the annoying 300ms delay when tapping links and buttons.

Right now I'm seeing iOS7 - Safari working great, the 300ms delay does not occur. However on Android Galaxy S4 (and 3) Chrome 33, there's a significant delay between tapping and when the action actually occurs.

Has anyone else seen this situation? I am trying to narrow it down to the 300ms delay or just slow browser performance.

I've tried to include "fastclick" (https://github.com/ftlabs/fastclick) but it does not seem to fix the issue.

mitchellsimoens
3 Mar 2014, 7:21 AM
The reason tap has a delay is that it needs to also work with doubletap. Only one of these events should fire whether it's a tap or a doubletap so tap has to wait to see if it's a doubletap.

Kikketer
3 Mar 2014, 7:32 AM
The reason tap has a delay is that it needs to also work with doubletap. Only one of these events should fire whether it's a tap or a doubletap so tap has to wait to see if it's a doubletap.
Is it possible to disable the waiting for the doubletap? My application has no need for the doubletap interaction, and I don't want to force the user to wait.

In my app.js, I have the following:


eventPublishers: {
touchGesture: {
recognizers: {
swipe: null,
pinch: null,
rotate: null,
doubleTap: null,
longPress: null,
edgeSwipe: null
}
}
},

Which strangely enough, forced me to add the following into the requires portion:


requires: [
'Ext.event.publisher.Dom',
'Ext.event.publisher.TouchGesture',
'Ext.event.recognizer.Tap',
'Ext.event.publisher.ComponentDelegation',
'Ext.event.publisher.ComponentPaint',
'Ext.event.publisher.ElementPaint',
'Ext.event.publisher.ElementSize',
'Ext.event.recognizer.Drag',

This doesn't seem to speed up the single tap of the navigation buttons. I'm really noticing it in Android 4.2.2 Chrome 33 and Android Browser.

kodak
6 Mar 2014, 8:40 AM
I'm not shure if its the tap delay or just the slower performance on Android.
I also tried for many hours to get the next view appear faster but no config option was working (like pressedDelay - http://docs.sencha.com/touch/2.2.1/#!/api/Ext.Button-cfg-pressedDelay)

Now I think its the app/my code which causes the delay.
I'm trying to load the view first now and then the content but I need to spend more time on this...

Kikketer
6 Mar 2014, 9:31 AM
Yes, I'm spending some time on this as well. The "pressedDelay" sounds like it's just a delay to add the pressed styling, not actually increasing the speed of the tap.

I've added a mask overlay as the first action when tapping on a button, and it still waits 300ms. This is using a delegate, so there may be some Sencha delays still in-between.

Sencha! DoubleTap is an exception, not the norm. Please remove all double tap interactions and delays by default, if someone really feels the need to add double tap, have that situation add more configs.
Google has already removed it (1 version ago)... strangely enough it's the only browser where I see this delay in Sencha:
http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away

Kikketer
6 Mar 2014, 11:38 AM
Here's a very simple example...
The chrome and android browser have the same exact latency between tap and navigation.


http://youtu.be/crFvwou_uBQ

Sencha related? Not sure yet.

kodak
7 Mar 2014, 7:48 AM
What I really missing from Sencha is a performance best practise article.
They say... keep the DOM simple and don't use much animation and destroy unused views.

But it's not that easy... and you can make a lot of mistakes.
I hope that they introduce the technic they used in the example app "fastbook".
Try this one... its reacting really fast.

If anyone know how they did this... PM me! :)


Edit: Just found this video about fastbook: http://vimeo.com/album/2541003/video/75397090

Kikketer
7 Mar 2014, 11:48 AM
I'll have to watch that video, looks promising.
The video that I posted above was absolute minimum code. The Fiddle is here:
44t

ibushong
25 Jul 2014, 8:07 PM
Has this been solved? I just took over a Sencha Touch project and this 300ms delay is driving me nuts. This is one of the main bullet points in getting a web/hybrid app to feel native.

You'll notice that the button shading/highlight changes immediately on the tap, so the event/hook is already there. I think this event should also trigger the tap/transition. Or at least be able to specify the amount of delay.

The_Unknown
14 Apr 2015, 11:32 AM
Is there any solution available for this by the time? I agree to ibushong: The Android-related performance issues are one of the major flaws of Sencha Touch. On iPhone (I only tested it on the iPhone 6) it works just fine.

thedang
3 Aug 2015, 7:34 PM
Any workaround for this problem,I dont have double tap in my application, and i dont want user wait 300ms.