I've been reading a fascinating book called High Performance Browser Networking by Ilya Grigorik. In fact, you can read it too because Velocity Conference has covered the cost of accessing the online copy.
The latest gold nugget I ran into today was a recommendation to:
Decouple user interactions from network communication
Why would you want to do this?
Mobile devices, especially older ones, have a high overhead in establishing network connections and can easily suffer from poor connection quality. If you accept a UX interaction on the local device before attempting to supply the changes to the remote server, the end user interaction is then made asynchronous to the network traffic.
This change in thinking does increase the complexity of the local application code, whether JS or native code, but the benifit is a decrease in apparent latency to the end user.
Read the book
This book goes into further details on latency to establish connections and energy use increases to many of the techniques we take for granted in modern application as well as web development (i.e. polling, streaming).