Tengo una aplicación web que hace un uso extensivo del identificador de fragmento para manejar el "estado".Identificador de fragmento de URL - simplificar la gestión de estado (javascript)
examplesite.com/#$mode=direct$aa;map=t;time=2003;vid=4;vid=7
una serie de preguntas:
1) ¿Qué es una buena manera de asignar los diversos "location.hash nombre value-pairs" a las variables para realizar un seguimiento del estado?
1a) ¿Debo hacer un objeto que haga un seguimiento del estado en js o declare variables globales para cada par de valores de nombre?
1b) ¿Hay algún buen complemento jquery para simplificar esto?
1c) Si quiero hacer un seguimiento de algo llamado "color" - debe adjuntarse en todo momento al fragmento (#) y cuál es la forma correcta de verificar si está definido; ¿Se puede mejorar el código a continuación?
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) Como algunos nombres se utilizan dos veces ("vid" en el ejemplo anterior) - ¿cómo podría fácilmente almacenar ellos es las variables independientes?
2) Hay 4 diferentes "hashes" Quiero prestar especial atención a:
examplesite.com/ (sin hash)
examplesite.com/#example=5 (contiene "ejemplo")
examplesite.com/#time=2003;vid=4;vid=7;modified=5 (contiene "modificado")
examplesite.com/#time=2003;vid=4; vid = 7 (no contiene "modificado" o "ejemplo")
¿Cómo escribiría una estructura de control que extraiga variables del hash cuando la aplicación carga y comprueba las condiciones anteriores?
3) ¿Cómo se pueden almacenar los estados previos y cómo activar un cambio de estado cuando se presiona el botón de retroceso?
Buena idea, gracias por su aporte, realmente útil. – dani