Persistenza dei dati nel localStorage
Taggato: Jquery Mobile, localStorage, persistenza dati
- Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 5 mesi fa da jqueryitalia.
- AutorePost
- 22 Novembre 2013 alle 17:50 #5545Anonimo
CIao a tutti , mi chiamo Roberta, e sono neofita nella programmazione…
In questo momento sto facendo un’app per visionare le competizioni sportive.
L’app prevende che deve prendere dei dati da un DB attraverso dei files json e creare delle pagine in base ai dati richiesti.
Il mio problema, purtroppo è quello di memorizzare in modo persistente i dati nelle pagine, che in realtà sono formate solo dai dati presi nei file json.
La prima pagina va bene: è una lista di competizioni, che vengono memorizzate nel LocalStorage e persistono senza problema.
// VISAULIZZAZIONE DELLA PRIMA PAGINA $(document).bind("pageshow", function visualizza(){ //localStorage.clear(); $.ajax ({ type: "POST", contentType:"application/json; charset=utf-8", url: "competitions.json", dataType: "json", async: true, success: function(data, textStatus, jqXHR){ var L='0'; var res = '<ul data-role="listview" id="elenco" data-inset="true">'; for (var i=0; i < data.Competition.length; i++){ //MEMORIZZAZIONE DEI DATI DEL FILE JSON NEL LOCALSTORAGE CON DISTINZIONE DI CHIAVE localStorage.setItem("a"+i, JSON.stringify(data.Competition[i])); var comp = data.Competition[i]; z=comp.Competition_ID; if ((i % 2) == 0){ res +='<li data-theme="a">'+comp.Competition_Name+'<h2 class="ui-li-aside"><b>'+comp.Competition_Matches+'</b></h2>'; if(comp.Competition_Matches!=""){ L="si"; } }else { res +='<li data-theme="b">'+comp.Competition_Name+'<h2 class="ui-li-aside"><b>'+comp.Competition_Matches+'</b></h2>'; if(comp.Competition_Matches!=""){ L="si"; } } res += ''; } res += '<div class="clear"><hr></div>'; $("#contenitore").empty(); $("#contenitore").prepend(res); $("#elenco").listview(); if (L=="si"){ $("#live").fadeIn('slow'); }else{ $("#live").fadeOut('slow'); } }, error: function (jqXHR, textStatus, errorThrown){ alert(textStatus); } }); return false; });
Il problema giunge quando clicco una competizione, ed entro in una nuova pagina, con i dati presi da un altro file json.
la pagina appare con i dati, ma se io faccio un semplice refresh scompare tutto…
Logicamente questo problema si replica in ogni pagina a seguire, non dando la possiblità alla pagina di venir ri aggiornata, con tutti i problemi del caso.FUNZIONE CHE RICHIAMA LA SECONDA PAGINA
//FUNZIONE INVIO VARIABILE Z function Selezione(z){ $.ajax ({ type: "GET", url: "competitions_phases.json", dataType: "json", success: function(data, textStatus, jqXHR){ var L=''; for (var i=0; i < data.Competition.length; i++){ //MEMORIZZAZIONE DATI NEL LOCALSTORAGE DAL FILE JSON COMPETITION_PHASES localStorage.setItem(i, JSON.stringify(data.Competition[i])); var comp = data.Competition[i]; if(z == comp.Competition_ID){ var res =''; res +='<span class="ui-btn-inner ui-btn-corner-all"> <span class="ui-btn-text" > Home </span><span data-form="ui-icon" class="ui-icon ui-icon-home ui-icon-shadow"></span></span>'; res +='<div class="ui-header ui-bar-c" data-swatch="c" data-theme="c" data-form="ui-bar-c" ><h1 class="ui-title" >competizione '+comp.Competition_ID+' '+comp.Competition_Name+'</h1></div>'; var res2 = '<ul data-role="listview" id="newlist" data-position="fixed" data-theme="c" >';//MEMORIZZAZIONE IN DUE STRINGHE DIFFERENTI for (var y=0; y<comp.Competition_Phases.length; y++){ var phase= comp.Competition_Phases[y]; po = phase.Pool_ID; if (phase.Type == "Phase"){ res2 += '<li data-role="list-divider" data-swatch="a" data-theme="a" data-form="ui-bar-a">' + phase.Phase_Name+''; ph = phase.Phase_ID; } else { res2 += '<li >'+phase.Pool_Name; if(phase.Pool_Matches!=""){ L="si"; } res2+='<span class="ui-li-count">'+phase.Pool_Matches+'</span>'; } }//CHIUSURA FOR res2 += ''; }//CHIUSURA IF $('#header').empty(); $('#competition-pool').empty(); $('#header').prepend(res); $("#competition-pool").prepend(res2); $("#newlist").listview(); if (L=="si"){ $("#live2").fadeIn('slow'); }else{ $("#live2").fadeOut('slow'); } }//CHIUSURA FOR }, error: function (jqXHR, textStatus, errorThrown){ alert(textStatus); } }); }
Metto qui il link delle pagine realizzate… ci sono altri problemi… che se risolvo questo poi chiederò di aiutarmi anche per gli altri
http://partitodelcuore.altervista.org/prova_sito/WebContent/index4.html
Grazie in anticipo per chi avesse tanta pazienza ad aiutarmi
23 Novembre 2013 alle 20:28 #5553jqueryitaliaAmministratoreCiao Roberta e benvenuta!
Una domanda: che browser utilizzi durante la navigazione?
- AutorePost
- Devi essere connesso per rispondere a questo topic.