Ciao a tutti, è un problema un pò strano, ma a quanto pare il local storage mi memorizza i dati in maniera caotica e non funziona a dovere.
Meglio che parto dal principio.
Allora io sto facendo un sito per mobile di un sito già esistente ma che fa vedere solo alcune informazioni.
Il sito è di risultati sportivi
la home fa vedere i campionati in essere, e quando si clicca su di un campionato, si entra nelle competizioni con le diverse gare.
Il problema è quando aggiorno la pagina delle competizioni, dato che è una pagina dinamica, si dovrebbe aggiornare con i dati correnti e, con il local storage, i dati dovrebbero essere visibili e persistenti nella pagina.... e qui nasce il problema.
Quando clicco sul campionato entro nelle competizioni, che se le aggiorno spariscono.
Devo dire che per fare questa pagina ho usato una funzione locale, e da lì ho pensato che fosse quello il problema, invece quando ho fatto una funzione globale, e son andata a richiamare il local storage con i dati memorizzati, mi ha fatto apparire solo una ed una sola competizione, qualsiasi campionato selezionassi.
Quindi ho voluto vedere cosa memorizzava il LS ed Ecco cosa memorizza:
E' un file json con id sparsi ed alcuni campi vuoti.Codice:0: {"Competition_ID":"1","Competition_Name":"Elitserien 2012","Competition_ShortName":"Elitserien 2012","Competition_Gender":"Men","Competition_Matches":"2","Competition_Phases":[{"Type":"Phase","Phase_ID":"1","Phase_Name":"Small Country Division","Phase_ShortName":"SMD"},{"Type":"Pool","Pool_ID":"1","Pool_Name":"Pool A","Pool_Matches":"2"},{"Type":"Pool","Pool_ID":"2","Pool_Name":"Pool B","Pool_Matches":""},{"Type":"Phase","Phase_ID":"2","Phase_Name":"Small Country Division","Phase_ShortName":"SMD"},{"Type":"Pool","Pool_ID":"1","Pool_Name":"Pool A","Pool_Matches":"2"},{"Type":"Pool","Pool_ID":"2","Pool_Name":"Pool B","Pool_Matches":""}]} 4: 4 5: 5 2: {"Competition_ID":"3","Competition_Name":"LIGA 2012","Competition_ShortName":"Elitserien 2012","Competition_Gender":"Men","Competition_Matches":"2","Competition_Phases":[{"Type":"Phase","Phase_ID":"1","Phase_Name":"Small Country Division","Phase_ShortName":"SMD"},{"Type":"Pool","Pool_ID":"1","Pool_Name":"Pool A","Pool_Matches":"2"},{"Type":"Pool","Pool_ID":"2","Pool_Name":"Pool B","Pool_Matches":""}]} 3: 3 1: {"Competition_ID":"2","Competition_Name":"LIGACUPEN 2012","Competition_ShortName":"Elitserien 2012","Competition_Gender":"Men","Competition_Matches":"2","Competition_Phases":[{"Type":"Phase","Phase_ID":"1","Phase_Name":"Small Country Division","Phase_ShortName":"SMD"},{"Type":"Pool","Pool_ID":"1","Pool_Name":"Pool A","Pool_Matches":"2"}]}
il codice della funzione globale è questa:
C'è qualcuno che mi sa aiutare urgentemente?Codice:$(document).bind("pagechange", function (event, data){ var page = $.mobile.activePage[0].id;//dichiarazione di variabile che fa riferimento alla pagina attiva if (page == 'competition') { for (var j = 0; j < localStorage.length; j++) { var c = JSON.parse(localStorage.getItem(localStorage.key(j))); $.ajax ({ type: "POST", url: "competitions_phases.json", dataType: "json", success: function(data, textStatus, jqXHR){ for (var i=0; i < data.Competition.length; i++){ localStorage.setItem(i, JSON.stringify(data.Competition[i])); var comp = data.Competition[i]; if(c.Competition_ID == comp.Competition_ID){ var res ='<a class="ui-btn-left ui-btn ui-btn-icon-notext ui-btn-corner-all ui-shadow ui-btn-up-c" href="#home" data-role="button" data-icon="home" title=" Home ">'; 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></a>'; 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="in-line" data-theme="c" >'; for (var y=0; y<comp.Competition_Phases.length; y++){ var phase= comp.Competition_Phases[y]; if (phase.Type == "Phase"){ res2 += ' <li data-role="list-divider" data-swatch="a" data-theme="a" data-form="ui-bar-a">' + phase.Phase_Name+'</li>';} else { res2 += ' <li data-form="ui-btn-up-a"><a href="#">'+phase.Pool_Name+'</a></li>'; } } res2 += '</ul>'; //z=''; $('#header').empty(); $('#competition-pool').empty(); $('#header').prepend(res); $("#competition-pool").prepend(res2); $("#newlist").listview(); } } }, error: function (jqXHR, textStatus, errorThrown){ alert(textStatus); } }); } } });
cosa sbaglio?
se c'è bisogno anche dell'altra parte di codice ditemi...
Grazie a tutti
Rox

LinkBack URL
About LinkBacks



