Ho un'applicazione Web che fa ampio uso dell'identificatore di frammento per gestire lo "stato".Identificatore di frammento di URL - semplificare la gestione dello stato (javascript)
examplesite.com/#$mode=direct$aa;map=t;time=2003;vid=4;vid=7
Un certo numero di domande:
1) Che cosa è un buon modo di assegnare i vari "location.hash nome del valore coppie" alle variabili per tenere traccia dello stato?
1a) Devo creare un oggetto che tenga traccia dello stato in js o dichiari le variabili globali per ogni coppia di valori nome?
1b) Ci sono dei buoni plugin jquery per semplificare questo?
1c) Se voglio tenere traccia di qualcosa chiamato "colore" - dovrebbe sempre essere aggiunto al frammento (#) e qual è il modo corretto di verificare se è definito; il codice qui sotto può essere migliorato?
var color;
var hashString = location.hash;
var nvPairs = hashString.split(";");
var nvPair = new Array();
for (i = 0; i < nvPairs.length; i++)
{
var keyValuePair = nvPairs[i].split("=");
nvPair[keyValuePair[0]] = keyValuePair[1];
}
if (nvPair['color']) color = nvPair['color'];
1d) Come alcuni nomi sono usati due volte ("vid" nell'esempio di cui sopra) - come potrei facilmente negozio è variabili separate?
2) Ci sono 4 diversi "hash" Voglio prestare particolare attenzione a:
examplesite.com/ (senza hash)
examplesite.com/#example=5 (contiene "esempio")
examplesite.com/#time=2003;vid=4;vid=7;modified=5 (contiene "modificato")
examplesite.com/#time=2003;vid=4; vid = 7 (non contiene "modificato" o "esempio")
Come si scrive una struttura di controllo che estrae le variabili dall'hash quando l'applicazione carica e controlla le condizioni di cui sopra?
3) Come può essere memorizzato lo stato/i precedenti e come attivare un cambiamento di stato quando si preme il pulsante indietro?
Buona idea, grazie per il tuo contributo - davvero utile. – dani