2010-09-13 13 views
6

En mi sitio web tengo dos páginas llamadas First.aspx y second.aspx.¿Usa javascript: history.back(); tiene algún problema desconocido?

Desde first.aspx estoy redireccionando usuario a second.aspx haciendo clic en un enlace.

En la página second.aspx, estoy usando javascript: history.back() al hacer clic en un botón de cancelar entrada (no en el botón asp). Esto se hace para evitar la recarga de la última página ya que el usuario no ha hecho nada en esta página, y ha hecho clic en cancelar para volver a la página anterior.

Me pregunto si hay algún problema de seguridad o cualquier otro problema relacionado con el uso de este history.back()? Si es así, ¿qué tipo de problemas son?

En lugar de esto, ¿debería usar el botón asp y redireccionar a la primera página usando response.redirect()? ¿Cuál es el mejor enfoque?

Respuesta

5

Sugiero evitar el historial.back() a excepción de alguna página de uso raro que de otra manera no se puede hacer.

Por qué evitarlo. El primer motivo es el caso de que un usuario abra una página nueva, o guarde esta página (y la abra más adelante) y no tenga ninguna página anterior. De esa manera no puede ir a "cancelar página".

También hay casos en que otra persona de otra página lo redirecciona a su página (¿puede tratarse de un problema de seguridad?) Este caso también lo cancela lo devuelve a la página anterior ... Algunos sitios de búsqueda de tiempo abren su página en un marco para simplemente mostrar una foto de su página, también este es un caso que el .back quizás no funcione correctamente.

Segundo motivo, el retroceso no funciona correctamente cuando tiene llamadas/actualizaciones ajax y debe manejarse de otra manera.

El tercer motivo es que la memoria caché de la página no depende del retroceso o de la redirección. En ambos casos, la página puede volver a cargarse o no, esto depende de lo que haya configurado en el encabezado de la página y de cómo lo maneje el navegador.

Y también existe el caso de que el usuario no tenga javascript (o lo tenga deshabilitado), o el producto javascript tenga un error y no funcione por ningún motivo al azar.

Y uno más también muy importante. Si ha hecho que la publicación vuelva a la página anterior, entonces regrese, ¡se genera de nuevo la publicación posterior! Debes redirigirlo a la página anterior.

Espero que esta ayuda.

Cuestiones relacionadas