2010-09-13 9 views
6

Na mojej stronie mam dwie strony o nazwie First.aspx i second.aspx.Czy używanie javascript: history.back(); masz jakieś nieznane problemy?

Od first.aspx przekierowuję użytkownika do second.aspx klikając łącze.

Na stronie second.asp używam javascript: history.back() po kliknięciu przycisku anulowania wprowadzania (nie przycisku asp). Robi się to, aby uniknąć ponownego załadowania ostatniej strony, ponieważ użytkownik nie zrobił nic na tej stronie, i kliknął na anuluj, aby powrócić do poprzedniej strony.

Zastanawiam się, czy są jakieś problemy związane z bezpieczeństwem lub inne problemy związane z używaniem funkcji history.back()? Jeśli tak, jakie to są problemy?

Czy zamiast tego powinienem użyć przycisku asp i przekierować z powrotem na pierwszą stronę za pomocą metody response.redirect()? Który z nich jest lepszy?

Odpowiedz

5

Proponuję unikać funkcji history.back() z wyjątkiem rzadkich stron, których nie można wykonać w inny sposób.

Dlaczego należy unikać. Po pierwsze dlatego, że użytkownik otwiera nową stronę lub zapisuje tę stronę (i otwiera ją później) i nie ma już poprzedniej strony. W ten sposób nie może przejść do "anulowania strony".

Jest także przypadek, że ktoś inny z innej strony przekieruje go na twoją stronę (może to jest problem z bezpieczeństwem?) Ta sprawa także anuluj spowoduje powrót do poprzedniej strony ... Niektóre witryny wyszukiwania otwierają strona w ramce, aby pokazać zdjęcie ze strony, również jest to przypadek, w którym .back może nie działać poprawnie.

Drugi powód, powrót nie działa poprawnie, gdy masz wywołania/aktualizacje ajax i musi być obsługiwany w inny sposób.

Trzeci powód jest taki, że pamięć podręczna strony nie zależy od powrotu ani od przekierowania. W obu przypadkach strona może zostać ponownie załadowana lub nie, zależy to od tego, co ustawiłeś w nagłówku strony i jak przeglądarka go obsługuje.

Istnieje również przypadek, w którym użytkownik nie ma javascript (lub go wyłącza) lub produkt javascript jest błędem i nie działa z żadnego przypadkowego powodu.

I jeszcze jedno bardzo ważne. Jeśli zrobiłeś post z powrotem na poprzedniej stronie, to wróć, jest generowany ponownie po powrocie! Musisz przekierować go na poprzednią stronę.

Mam nadzieję, że ta pomoc.

Powiązane problemy