2010-09-13 11 views
6

Nel mio sito Web ho due pagine chiamate First.aspx e second.aspx.Utilizza javascript: history.back(); hai qualche problema sconosciuto?

Da first.aspx sto reindirizzando l'utente a second.aspx facendo clic su un collegamento.

Nella pagina second.aspx, sto usando javascript: history.back() al clic di un pulsante di input di annullamento (non pulsante asp). Questo è fatto per evitare di ricaricare l'ultima pagina in quanto l'utente non ha fatto nulla su questa pagina e ha fatto clic su Annulla per tornare alla pagina precedente.

Mi chiedo se ci sono problemi di sicurezza o altri problemi relativi all'utilizzo di questo history.back()? In caso affermativo, che tipo di problemi sono?

Invece di questo, dovrei usare il pulsante asp e reindirizzare nuovamente alla prima pagina utilizzando response.redirect()? Qual è l'approccio migliore?

risposta

5

Suggerisco di evitare history.back() ad eccezione di alcune rare pagine di utilizzo che non è possibile fare diversamente.

Perché evitare. Il primo motivo è che un utente apre una nuova pagina o salva questa pagina (e la apre in seguito) e non ha pagine precedenti. In questo modo non può andare a "cancellare la pagina".

Anche se qualcun altro da un'altra pagina lo reindirizza alla tua pagina (forse questo è un problema di sicurezza?) Anche in questo caso l'annullamento lo riporta alla pagina precedente ... Alcuni siti di ricerca del tempo aprono il tuo pagina in una cornice per mostrare solo una foto dalla tua pagina, anche in questo caso il .back potrebbe non funzionare correttamente.

Secondo motivo, il ritorno non funziona correttamente quando si hanno chiamate/aggiornamenti ajax e devono essere gestiti in modo diverso.

Terzo motivo è che la cache della pagina non dipende dal ritorno o dal reindirizzamento. In entrambi i casi la pagina può essere ricaricata o meno, ciò dipende da ciò che è stato impostato sull'intestazione della pagina e da come il browser lo gestisce.

E anche nel caso in cui l'utente non abbia javascript (o lo abbia disabilitato), o il prodotto javascript un errore e non funzioni per qualche motivo casuale.

E un altro anche molto importante. Se hai fatto post sulla pagina precedente, poi il ritorno, è di nuovo generare post! Devi reindirizzare la pagina precedente.

Spero che questo aiuto.

Problemi correlati