|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2010
Messaggi: 157
|
[JS] Impossibile modificare le variabili globali
Ciao,
sto scrivendo uno script js che deve gestire delle mappe. Ho una serie di variabili globali che, tramite una funzione, devono essere modificate per impostare il caricamento di una determinata mappa. Il problema è che nonostante all'interno della funzione le assegnazioni vadano a buon fine (ho stampato i valori aggiornati tramite console.log()) nelle altre funzioni che lavorano queste informazioni i valori restano quelli impostati quando ho dichiarato queste variabili. Un po' di codice forse spiegherà meglio: Codice:
var idMappa = -1; var paginaPrecedente = null; function back() { console.log("back: " + paginaPrecedente); // stampa null console.log("back_id: " + idMappa); // stampa -1 //... } function setInfo(id, pagina) { paginaPrecedente = pagina; idMappa = id; console.log("Pagina: " + paginaPrecedente); // stampa correttamente il contenuto dell'argomento pagina location.href = "maps.html"; } viene lanciato setInfo che tra le varie operazioni setta i nuovi valori passati come parametri. Quando poi in seguito viene lanciato back i valori stampati non sono più quelli che setInfo aveva impostato. Da cosa potrebbe dipendere? Grazie e buon anno! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2008
Messaggi: 429
|
dal codice che hai postato è normale che i valori non vengono impostati.
nel momento in cui tu fai location.href = "maps.html"; tu richiami da zero la pagina e quindi le variabili vengono reinizializzate dal codice var idMappa = -1; var paginaPrecedente = null; dovresti fare una cosa del tipo location.href = "maps.html?id="+ idMappa; e poi leggere il valore dalla querystring |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2010
Messaggi: 157
|
Ho dimenticato di dire che tutte le funzioni e tutte le variabili sono all'interno del medesimo file js.
Viene sempre ricaricato tutto per ogni pagina che include il file? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1677
|
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: May 2010
Messaggi: 157
|
Grazie.
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: May 2010
Messaggi: 157
|
Secondo te dal momento che devo tenere varie informazioni memorizzate da qualche parte, e passarle nell'url non mi pare una grossa idea, l'uso di qualche cookie potrebbe essere utile?
Ad esempio devo tenere in memoria delle mappe preimpostate, o dei vettori che vengono popolati all'avvio dello script e che poi non saranno più modificati. Grazie. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1677
|
Quote:
puoi usare anche session (oggetto sessione) se nel tuo linguaggio è previsto. |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: May 2010
Messaggi: 157
|
Devo realizzare tutto in javascript.
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1677
|
se sono solo banali stringhe usa i cookie.
puoi farti un array di stringhe con un delimitatore e lo scorri con un for. oppure usi qualche framework ad oggetti per javascript tipo JSON. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:50.