Visualforce applications that maintain state across multiple requests to the server utilize the viewstate, which may be up to 135 Kb in size. The viewstate can be a significant resource for mobile devices to manage as they typically have a reduced memory footprint compared to desktop devices. The viewstate must also be sent with every HTTP
request to the server, which over a 3G/4G network can be slow and expensive in terms of data plan usage.
Visualforce pages intended for Salesforce1 should make use of JavaScript remoting, as detailed in the JavaScript remoting recipe in Chapter 7, Enhancing the Client with JavaScript. These server calls are stateless (so the request only contains the data items that the server needs for the specific action), and take place via AJAX, which is a more performant protocol and doesn't require a full page reload for the server response.
Using Visualforce remoting is not without its downsides though - JavaScript code must be developed to extract...