Pregunta

Básicamente en mi sitio web tengo una barra lateral con una pila de cajas; cada caja puede plegarse o expandido por el usuario. Necesito guardar el estado de cada caja para el usuario actualmente conectado. No quiero que el uso de cookies, porque si un usuario cambia navegador o equipo, todas las cajas irán al estado por defecto.

debo guardar esta información en la base de datos haciendo una consulta cada vez que se derrumba el usuario / expande una caja? ¿Cómo manejaría esto? Gracias.

Editar ¿Qué pasa si un usuario hace clic en el botón de activación reiterada, como diez veces en dos segundos, sólo porque le gustan los cuadros de animación? Él hará consultas diez en dos segundos. Así que tal vez la pregunta debería ser:? cuando debo guardar estos datos

¿Fue útil?

Solución

  1. Llamar a un (del lado del cliente) "cambió" la función cada vez que cambia una caja.

  2. Mantener dos elementos de (del lado del cliente) Estado:. El tiempo de la última actualización al servidor fue enviado y si el temporizador ha sido ajustada

  3. Escribir una función de "actualización" (del lado del cliente) que envía la actualización y actualiza el estado de marca que la última actualización se realizó hace un momento.

  4. Cuando el cambio de función se llama: si se establece un temporizador, y luego volver de inmediato; si hay una actualización nunca ha sido enviada o la última actualización fue enviado hace más de diez segundos, y luego llamar a la función de actualización y retorno. De lo contrario, establecer un temporizador para enviar la actualización después de diez segundos.

  5. La devolución de llamada temporizador debe simplemente borrar el indicador del temporizador y llamar a la función de actualización.

  6. También en un href="http://api.jquery.com/unload/" rel="nofollow"> descarga cheque caso

Así, el resultado es que se envía la actualización inmediatamente excepto cuando el usuario está batiendo, en cuyo caso sólo se envía una actualización cada segundo diez como máximo.

Puede haber algunos casos donde se pierde una actualización, pero es probable que esto solo se producirá si el usuario estaba jugando con la conmutación y luego cerró la página antes de que el temporizador disparado, en cuyo caso es probable que no se dará cuenta de todos modos.

Otros consejos

Si necesita persistir estas opciones de varios equipos que necesitará alguna forma de almacenamiento del lado del servidor.

Esto podría ser la base de datos o archivo plano. La elección depende de lo que tiene disponible, conjunto de habilidades, y la necesidad de escala. Si se va a presentar sólo unos pocos usuarios, un archivo plano puede ser su mejor opción.

scroll top