Perché l'unico stato che deve essere salvato nell'app Contoso Cookbook è lo stato della navigazione - l'elemento o il gruppo che l'utente sta visualizzando e la cronologia di navigazione - non dovrete fare nulla per gestire il PLM. Visual Studio include questa riga di codice nell'handler app.oncheckpoint js che serializza lo stato della navigazione nello stato della sessione.
app.sessionState.history = nav.history;
La proprietà sessionState è il contenitore delle proprietà dove potrete includere ogni oggetto che la Windows Library for JavaScript (WinJS) dovrà serializzare automaticamente quando l'app sta per essere sospesa. WinJS richiama automaticamente oncheckpoint quando scattano gli eventi di sospensione.
Visual Studio, inoltre, include il seguente codice nell'handler dell'evento di riattivazione (quello che ripristina lo stato di navigazione se l'app è stata terminata dal sistema operativo dopo essere stata sospesa).
if (app.sessionState.history)
{
nav.history = app.sessionState.history;
}
Tutte queste operazioni sono un "regalo" per lo sviluppatore. Se Contoso Cookbook viene sospesa e poi terminata, automaticamente verrà riaperta mostrando l'ultima pagina che l'utente stava visualizzando. Potete provare questa funzione avviando l'app da Visual Studio (con F5), selezionando una ricetta e selezionando Suspend and shutdown dalla toolbar Debug Location, come mostrato nella figura in basso:
Dopo aver terminato l'app in questo modo, premete di nuovo F5 per riavviarla. Questo processo simula ciò che accade quando l'app viene terminata e riavviata dal sistema operativo. Grazie al codice che ha creato Visual Studio, l'app torna esattamente alla ricetta che stavate visualizzando prima di chiuderla. Poiché viene ripristinata anche la cronologia di navigazione, potrete utilizzare anche il pulsante Back per tornare indietro sui vostri passi.