asp.net 2.0에서 브라우저가 서버 쪽에서 닫힐 때를 알고 싶었습니다. 코드 숨김으로 탐지하는 방법?asp.net에서 서버 측에서 브라우저 닫기를 감지하는 방법은 무엇입니까?
답변
클라이언트 측 스크립트 :
< body onbeforeunload="window.open('http://www.website.com/browserclosed.aspx','mywindow','width=1,height=1');">
서버 측 스크립트 (browserclosed.aspx) :
// page_load
int userId = Convert.ToInt32(request.session("userId"));
ReportBrowserClosed(userId);
// Do what you want in ReportBrowserclosed() method
짧은 대답 : http는 상태가 없으므로 직접 처리 할 수 없습니다. 어쩌면 AJAX 고음질 풀링, 세션 타임 아웃 감지 및 기타 트릭을 사용할 수 있습니다.
자세한 설명 및 아이디어는 this question을 참조하십시오. 이것은 자바 기반이지만 아이디어는 언어에 구애받지 않습니다.
가장 먼저 떠오르는 것은 언로드 이벤트를 연결하고 브라우저가 사이트에서 멀리 탐색 한 것을 다시 비동기 적으로 게시한다는 것입니다 (창을 닫음). 그러나 HTTP가 stateless 웹 사이트를 만드는 데 사용되는 방식으로는이 방법이 불가능합니다. 신뢰할 수있는 사용자 연결 추적 방법이 없습니다.
여러 세션을 어떻게 처리할까요? 동일한 사이트가 여러 탭, 여러 탭 또는 창에서 열려 있고 하나만 제외하고 모두 닫힌 경우 어떻게 연결되어 있는지 어떻게 알 수 있습니까? 그리고 그것의 재미를 위해, 나의 브라우저가 사이 어딘가에서 추락했다고 말하십시오.
문제는 문제를 해결할 수있는 무언가를 디자인 할 수 있다는 것입니다. 그러나 HTTP에는 연결을위한 내장 된 제어 메커니즘이 없으므로 절대로 신뢰할 수 없습니다.
나는이 질문에 후속 질문으로 답해야합니다. 브라우저 창이 닫힐 때를 알 필요가있는 이유는 무엇입니까?
일부 리소스를 정리해야 할 경우보다 안정적으로 사용할 수있는 ASP.NET에 의해 촉진되는 두 가지 서버 쪽 이벤트가 있습니다. 그 값은 Session_End
또는 Application_End
입니다.
아주 분명한 질문은 왜 이것을 필요로합니까? 로그 아웃 시간 또는 종료 시간을 저장 하시겠습니까? 그렇다면 세션 타임 아웃을 잡는 것이 좋습니다. 다른 페이지를 리디렉션하고 자바 스크립트의 페이지 언로드 이벤트를 잡아 내고 싶습니까?
- 1. ASP.Net에서 페이지 닫기를 처리하는 방법은 무엇입니까?
- 2. 시간 초과시 http 서버 및 브라우저 측에서 정상 닫기를 실행하는 방법은 무엇입니까? HTTP1.1에서
- 3. 브라우저 플러그인을 감지하는 방법은 무엇입니까?
- 4. 창 만들기 및 닫기를 감지하는 방법?
- 5. ASP.NET에서 .NET 4를 감지하는 방법은 무엇입니까?
- 6. 서버 측에서 javascript를 실행하는 방법은 무엇입니까?
- 7. 서버 측에서 FLV 비디오를 생성하는 방법은 무엇입니까?
- 8. 서버 측에서 CheckBoxlist의 길이를 찾는 방법은 무엇입니까?
- 9. 서버 측에서 브라우저의 캐시를 지우는 방법은 무엇입니까?
- 10. ASP.NET에서 브라우저 시간 제한을 방지하는 방법은 무엇입니까?
- 11. 서버 측에서 asp.net에서 jquery 아코디언 창의 활성 인덱스를 가져 옵니까?
- 12. JavaScript에서 재로드와 닫기를 구별하는 방법은 무엇입니까?
- 13. 서버 (Tomcat) 출력을 클라이언트 측에서 표시하는 방법은 무엇입니까?
- 14. GWT에서 마지막으로 서버 호출을 감지하는 방법은 무엇입니까?
- 15. 서버 도메인에 관계없이 클라이언트 측에서 세션 데이터를 저장하는 방법은 무엇입니까?
- 16. 클라이언트/서버 및 브라우저/서버
- 17. ASP.NET에서 클라이언트 측 (자바 스크립트)과 서버 측에서 데이터를 하나의 양식 제출으로 처리하는 방법은 무엇입니까?
- 18. 서버 측에서 HTML 5 기록 API를 감지 할 수 있습니까?
- 19. 서버 측에서 검증해야합니까?
- 20. 데이터를로드하고 JSON에게 서버 측에서
- 21. 서버 측에서 asmx 호출
- 22. ReSharper에서 중괄호 자동 닫기를 방지하는 방법은 무엇입니까?
- 23. 자바 스크립트에서 언로드 이벤트가 새로 고침, 뒤로 가기 또는 브라우저 닫기를 통해 발생하는지 감지하는 방법이 있습니까?
- 24. ASP.net에서 서버 콜백
- 25. asp.net 클라이언트 측에서 서버 측 메서드 호출
- 26. Opensocial Application ... 서버 측에서 사용할 것은 무엇입니까?
- 27. 서버 측에서 푸시를 보내는 이유는 무엇입니까?
- 28. facebook : 서버 측에서 access_token을 저장하고 검색하는 방법은 무엇입니까?
- 29. 서버 측에서 클라이언트의 연결 및 연결 해제를 캡처하는 방법은 무엇입니까?
- 30. 서버 측에서 HTTPS man-in-middle 공격을 방지하는 방법은 무엇입니까?
나는 OP에 대해 대답 할 수 있지만,이 작업을 수행하는 하나의 공통 이유가를 중지하는 것입니다 사용자가 브라우저를 포기하고 닫을 때 장기 실행 작업 (쿼리, 보고서 생성 등). – Gabe