jearlu
12 Apr 2012, 11:11 AM
I am using Sench Touch version 2.0.0. My app is utilizing a tab panel for navigation. In one of the tabs, I am using an index bar to manage a long list of users (1500). I was thinking and hoping that after the initial render that switching back to the users tab would be relatively quick and painless as it is essentially simply hiding one tab and showing another. This is anything but quick (up to 6-8 seconds on my iPhone 4). I tried a number of things to optimize the amount of time required to display the users tab, all with limited success. I eventually came to accept this as a limitation of the mobile device itself (this is extremely fast and a non-issue in Chrome and Safari running on my laptop). Still though, I needed a way to communicate to the end-user that the app was actually processing their request. I decided to add a load mask to the content area of the tab panel on the tap event of the users tab button and remove the mask once the tab panel had been updated with the users list.
Specifics:
Ext.tab.Panel consisting 5 tabs (cards) that extend from Ext.NavigationView. The users tab (card) consists of an Ext.List using an index bar to manage navigation through the list.
Problem:
To handle the load mask when selecting the users tab, I drilled down to the users tab button (Ext.tab.Tab) and added a tap event handler that sets the mask. I attempted to remove the mask using the painted event on the users list. I also tried removing it using the show, activate, and painted events on the users tab (card) and the activeitemchange event on the tab panel. Problem is that all of these events fire before the tap event on the tab button. As a long time ExtJS user, I find this utterly baffling and completely unacceptable. The tab button's tap event fires long after the user's physical tap (up to 6-8 seconds on my iPhone 4), leaving no meaningful way to apply the load mask.
Specifics:
Ext.tab.Panel consisting 5 tabs (cards) that extend from Ext.NavigationView. The users tab (card) consists of an Ext.List using an index bar to manage navigation through the list.
Problem:
To handle the load mask when selecting the users tab, I drilled down to the users tab button (Ext.tab.Tab) and added a tap event handler that sets the mask. I attempted to remove the mask using the painted event on the users list. I also tried removing it using the show, activate, and painted events on the users tab (card) and the activeitemchange event on the tab panel. Problem is that all of these events fire before the tap event on the tab button. As a long time ExtJS user, I find this utterly baffling and completely unacceptable. The tab button's tap event fires long after the user's physical tap (up to 6-8 seconds on my iPhone 4), leaving no meaningful way to apply the load mask.