Tenemos un sitio jQM de producción así es como hacemos las cosas, y sí, otros pueden estar en desacuerdo, pero encontramos que esto funciona para un sitio muy grande.
uso de múltiples páginas HTML individuales, una plantilla de varias páginas gran derrota a los beneficios de la carga ajax de JQM ya que estás cargando todo el código HTML en el inicio (a menos que su sitio es pequeño)
Usted definitivamente desea utilizar ajax carga, JQM sólo lo hace en el código en su <div data-role="page">
pero esto complica sus JS ver más abajo
no necesita varios archivos JS, pero sí es necesario para cargar todas sus JS en el inicio, logramos esto haciendo dos cosas: 1. ponemos un oyente on
en la raíz del documento y escuchamos los eventos pageinit/pageshow. Cada vez que se carga una página estos se desencadenan, también tiene una referencia útil para la página actual, y puede usar un atributo en la página para determinar qué página era. 2. Tenga todas las JS en una inclusión de algún tipo (con suerte está usando PHP, CF o algo así) y ponga esto en cada página, de esa manera no importa con qué punto de entrada un usuario navegue a su sitio móvil, obtienen todo el código cargado
la desventaja es que toda la JS se carga al principio, pero minified nos encontramos con que no es gran cosa, y si es realmente una preocupación mirar en RequireJS - además de que hace que la depuración de una brisa ya que la JS está todo allí, podemos usar fácilmente el depurador y colocar puntos de interrupción. Si carga JS dinámicamente en cada página, aumenta los datos que necesita devolver en cada transición de página y tiene fealdad porque recargó JS redundante y es difícil depurar JS dinámico.
$(document).on('pageinit pageshow', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function(oEvent){
var pageType = $(this).data('pagetype');
//handle pageinit/pageshow (oEvent.type) for each pageType
Muy pocas cosas que tienen que ver con las "mejores prácticas" tienen un "voto unánime". – Chad