2010-08-06 11 views
6

Szukałem zdarzenia, które mogłoby wystrzelić, lub sposobu na stwierdzenie, czy użytkownik opuszcza stronę. Możesz przejść do innej strony lub całkowicie zamknąć stronę. Czy to możliwe dzięki wydarzeniom, które strzelają?C# Strona ASP.NET Opuszcza wydarzenie?

Odpowiedz

2

Nie w ASP.NET jako takim.

Będziesz musiał napisać javascript z przodu, aby to zrobić, używając czegoś takiego jak window.onbeforeunload(). Następnie musisz wykonać wywołanie AJAX, aby powiedzieć back-endowi, że to wydarzenie się dzieje. Oczywiście nie jest to niezawodne. Awaria przeglądarki lub wymuszone "zamknięcie" nie uruchomiłoby tego zdarzenia.

+0

@Nic: Ponieważ aplikacja internetowa nie może polegać na tym zachowaniu, należy rozważyć zaprojektowanie aplikacji bez niej. –

+0

Dziękuję Dave! Poinformuję później o próbce dla osób, które są zainteresowane. Jeszcze raz dziękuję za sugestię Dave. – Nic

+2

@Jeff Mattfield; Tak, zgadzam się z tobą, ale nie zawsze możesz przyjąć takie prymitywne nastawienie w realnym świecie rozwoju. Czasami jesteśmy umieszczani na stanowiskach, w których dziedziczymy aplikację, a wspomniana aplikacja nie była łuk z tą metodologią i wszystko, co próbujesz zrobić, to zrobić porządek, aby kupić, dopóki nie możesz zainwestować czasu. – Nic

0

Nie za pośrednictwem zdarzeń po stronie serwera. Wykrywanie opuszczania strony wymaga JavaScript.

0

po stronie klienta, można użyć onunload() (lub onbeforeunload(), otrzymując „jesteś pewien”, że będą wdzięczni, jeśli oznaczałoby to Zatrzymali przypadkowo zamykania coś po napisaniu długiego stackoverlow.com post, ale będzie drażnić użytkowników w większości przypadków).

Po stronie serwera, nie można tak naprawdę, choć można mieć onunload zrobić coś, co zasygnalizuje serwerowi.

Z reguły oznacza to, że traktujesz sieć jako stanową, a nie bezpaństwową. Projekty bezstanowe działają lepiej dzięki protokołom bezstanowym, takim jak sieci; im bardziej aplikacja traktuje każde żądanie jako unikalne i niezależne od wcześniejszych żądań (choć oczywiście to, co to jest, zależy od tego, jak klient potraktował poprzednie żądanie), tym bardziej skalowalna i niezawodna jest Twoja aplikacja.

Powiązane problemy