2010-06-07 14 views
5

He visto más y más de los sitios web que ofrecen una opción de deshacer después de presionar un botón Eliminar. ¿Cómo se hace la lógica detrás del botón?"Deshacer elimina" en la aplicación weba?

¿El elemento es eliminado por javascript y "desaparece" de la pantalla de los usuarios y se agrega una eliminación programada, que le da tiempo al usuario para deshacerlo o cómo funciona?

¿Cuáles son las otras opciones para ofrecer a los usuarios una función de deshacer?

Respuesta

11

Eso realmente depende de la estructura de la aplicación.

Una forma común es no eliminar un registro/un elemento, sino marcarlo como eliminado internamente (utilizando una columna booleana), excluyéndolo de todas las consultas y listas.

Si tiene una estructura de nodo, es posible que desee mover un elemento a un nodo "papelera de reciclaje" desde donde se puede restaurar a su ubicación original.

En ambas variantes, los elementos eliminados sería limpiado de vez en cuando - ya sea basado en el tiempo (borrar después de 3 semanas) o el volumen

+0

Hola Pekka, muchas gracias por tu respuesta. ¡Solución simple y fácil! Cosas geniales – Industrial

4
(hay que tener máximo 50 elementos eliminados, a continuación, comenzar a eliminar los más antiguos.).

¡En HTML5 habrá un Undo implementation!

Sin embargo, como dijo Pekka, su aplicación debe hacer un seguimiento de lo que se hace para "deshacerla". Una solución técnica es, a guardar las revisiones de un documento o de datos. Por lo tanto, cuando un usuario desea deshacer algo, solo se carga la revisión anterior.

+0

Parece que la función "deshacer" HTML5 (lo que sea que eso signifique) se canceló y/o el enlace ya no es relevante. Guardar las revisiones tiene sentido para deshacer una edición, pero no ayuda con las eliminaciones. –

+0

@WesleyMurch A menos que hagas "borrar" un tipo de edición. – Nicole

5

Estoy de acuerdo con Pekka, pero también sugiero que haga de la columna en cuestión un campo de fecha y hora, a diferencia de booleano (llámalo "eliminado en" o algo así).

Esto habilitaría fácilmente la funcionalidad de "eliminar después de n semanas", además de permitirle realmente "deshacer" en lugar de simplemente "recuperar".

+0

¡Sip! Buena idea. Simplemente implementamos eso. ¡Muchas gracias! – Industrial

Cuestiones relacionadas