I recently spent a few days investigating sluggish performance (particularly slow navigation) on an HTML5 / JavaScript based mobile application. Below is list of the main takeaways from the exercise:
- If necessary, use libraries that result in faster touch events on mobile e.g. FastClick library to eliminate 300ms click delay between tapping an element on a screen and the corresponding click event being fired
- Implement lazy loading for lists and tables (most HTML5 / JavaScript libraries have support for this on the respective List / ListView component)