2012-03-14 17 views
5

Sto costruendo una piccola app per dispositivi mobili e ho ricevuto una domanda su JQM.pulsante indietro jquerymobile per PhoneGap ottenere stato precedente

Quando l'utente è connesso l'utente verrà reindirizzato alla pagina A. Page A viene caricato con il loadPage da jQm (esempio: $.mobile.loadPage("pageA.html"))

Dopo che la pagina viene caricata, faccio un AJAX-chiamata, perché Estraggo alcuni dati da un database e cambio il contenuto nella pagina A. Dalla pagina A, posso andare alla pagina B. pagina B ha un pulsante indietro. Quando faccio clic sul pulsante Indietro, l'applicazione torna allo stato senza il contenuto AJAX. C'è un modo per risolvere questo problema?

Grazie

risposta

7

Per impostazione predefinita, jQuery Mobile rimuoverà qualsiasi pagina portato nel DOM tramite AJAX una volta che l'utente si sposta dalla pagina. Se si desidera disattivare questa funzione per una determinata pagina è possibile aggiungere l'attributo data-dom-cache all'elemento data-role="page per la pagina e impostarlo su true:

<div data-dom-cache="true" data-role="page" id="pageA"> 
    ... 
</div> 

Fonte: http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

Questa funzione è stata aggiunta su jQuery Mobile per controllare la dimensione del DOM in modo che si verifichino meno crash del browser. Se vuoi solo mantenere una singola pagina nel DOM, assicurati che non sia una pagina enorme che bloccherà il dispositivo.

+0

Bene, grazie. Funziona perfettamente. Ho guardato in ogni pagina dei documenti JQM, non l'ho mai visto :) forse ho bisogno di occhiali;) –

+0

Funziona con iOS e PhoneGap? – Blynn

+0

@Blynn Sì, questo dovrebbe funzionare correttamente con PhoneGap. In PhoneGap stai usando una 'webview' per visualizzare la tua pagina web all'interno di un'applicazione. Quindi la maggior parte dello stesso DOM di base esiste. – Jasper

Problemi correlati