Sto affrontando un problema davvero enorme (almeno per me). Ti darò un po 'di storia.LocalStorage, diverse richieste Ajax o enorme richiesta Ajax?
Sto sviluppando un'applicazione web mobile che mostrerà informazioni sulle stazioni degli autobus e sulle stazioni bici nella mia città. Mostrerà i marcatori GMap per le fermate di autobus e bici e, se clicchi, avrai informazioni sull'orario di arrivo dell'autobus o sul numero di biciclette disponibili. L'ho coperto abbastanza bene.
La parte problematica è il caricamento delle stazioni.
Il mio primo approccio è stato caricare la quantità di stazioni intera al caricamento della pagina. Si tratta di circa 200 Kb di JSON più il tempo necessario per scorrere l'array e inserirlo nella mappa. Sono nascosti in modo che, quando gli utenti fanno clic sul nome della linea, vengano visualizzati utilizzando la funzione 'findMarker'. Se altre stazioni erano presenti sulla mappa, si nascondono per evitare di avere troppi indicatori sulla mappa.
Questo ha funzionato bene con i nuovi cellulari come l'iPhone 4 o il nuovissimo HTC ma non funziona bene con i cellulari di 2 anni.
Il secondo approccio ho pensato, è stato quello di caricarli richiesta, quindi si fa clic sulla stazione, vengono caricati alla mappa, e quindi visualizzati, ma questo porta a due problemi:
- I il primo è che si può essere (o può essere meno) di eseguire diverse richieste che può finisce lo stesso (?)
- la seconda è che per evitare avere così molti marcatori, devono essere nascosti o eliminati in modo da essere eliminare le informazioni che dovrebbero essere necessarie di nuovo in un momento, come le stazioni di biciclette che vengono caricati come gruppo e non per linea.
Infine, ho pensato di usare LocalStorage per memorizzarli, in quanto non cambiano più di tanto, ma sarà una quantità enorme di dati e poi, un dolore nel culo per recuperarli in quanto sono fondamentali -valore, e anche (e non ne sono davvero sicuro) potrei trovare dispositivi senza supporto di questa funzione che devono ricorrere a una delle altre opzioni.
Quindi, detto questo, ho pensato che qualcuno potesse trovarsi di fronte a qualche problema simile e averlo risolto in qualche modo o avere qualche consiglio per me :).
Qualsiasi aiuto sarebbe molto apprezzato.
Credo che per un webapp è tutta una questione di velocità e prestazioni, quindi la memorizzazione nella cache tutti i dati statici prima di mano (nel corso di una schermata di caricamento iniziale o qualcosa) IMHO è il modo andare. Questo sarebbe anche optinal per l'utilizzo offline o quando la connessione è cattiva. Il caricamento iniziale potrebbe richiedere più tempo, ma penso che la webapp sarebbe più accattivante. –
Grazie per il tuo commento Phill. Questo pensiero è quello che porta a più confusione. La cpu non sarà più la ricerca e l'aggiunta dall'archiviazione locale rispetto al recupero e all'aggiunta dal server? –
La lettura dall'archivio locale sarà quasi certamente più rapida di una richiesta HTTP, la lettura della risposta e l'analisi dei dati JSON. Tuttavia, penso che utilizzando la memorizzazione nella cache del browser è possibile evitare l'utilizzo di Archiviazione locale, vedere la mia risposta di seguito. – StefanOS