2015-06-15 9 views
5

Ho letto il libro HTML in azione e nel capitolo 5, mostra come creare un'applicazione mobile che può essere eseguita offline. Il mio unico dubbio è: posso farlo per un'intera pagina? Puoi darmi un esempio semplice, ma completo, su come farlo?Come posso usare `localStorage` per memorizzare un'intera pagina?

Grazie in anticipo.

+1

guardare in questo: http://stackoverflow.com/questions/11271898/how-to-save-a-webpage-locally-including-pictures-etc – sumit

+2

Esamina [AppCaching] (https://developer.mozilla.org/en/docs/Web/HTML/Using_the_application_cache). – Xufox

+1

per un'intera pagina dovresti usare un file manifest. non è la memoria locale, è troppo piccola. –

risposta

6

Kinda folle, ma si potrebbe fare in questo modo:

var htmlContents = document.documentElement.innerHTML; 
localStorage.setItem('myBook', JSON.stringify(htmlContents)); 

Da lì si può chiamare ogni volta che ti piace ..

localStorage.getItem('myBook'); 

Sarebbe meglio ovviamente per ottenere il contenuto del libro, naturalmente, invece dell'intera pagina!

Anche per quello che vuoi fare più tardi. Bene è solo nel tuo browser .. quindi è accessibile solo a te. per il metodo appCahce, in pratica dirai al browser in visita i file che desideri archiviare nella cache in modo che siano disponibili quando l'utente è offline.

Questo deve essere definito nell'attributo HTML:

<html manifest="offline_book.manifest"> 

Questo offline_book.manifest conterrà l'elenco dei file da memorizzare nella cache.

CACHE MANIFEST 
/book_index.html 
/another_book.html 
/maybe_some_style.css 

Grazie a questo, poi, quando gli utenti tornano a questa pagina (offline), avranno una versione cache dei libri che hai elencato.

Una risorsa eccellente nelle appCache specifiche: Offline Webpages

+0

L'utente sarebbe in grado di caricare l'intera pagina offline? – Kyle

+0

Se hai memorizzato javascript nella loro cache che potrebbe recuperarlo in caricamento, allora sì certamente, ma molto probabilmente l'appCaching è l'opzione migliore per la tua situazione. – Pogrindis

+1

Ok, grazie, vado a dare un'occhiata :) – Kyle

1

Ad esempio è possibile utilizzare per il salvataggio localStorage variabile:

// Store 
localStorage.setItem("lastname", "Smith"); 
// Retrieve 
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); 

e farlo dopo:

localStorage.getItem('lastname'); 

window.localStorage interfaccia follow implementata che accepted by W3C:

interface Storage { 
    readonly attribute unsigned long length; 
    [IndexGetter] DOMString key(in unsigned long index); 
    [NameGetter] DOMString getItem(in DOMString key); 
    [NameSetter] void setItem(in DOMString key, in DOMString data); 
    [NameDeleter] void removeItem(in DOMString key); 
    void clear(); 
}; 

Maggiori informazioni si possono leggere here

+0

Grazie per aver chiarito come utilizzare 'localStorage' +1 :) – Kyle

Problemi correlati