2012-04-16 4 views
0

asp.net에서 브라우저 크래시 이벤트에 대한 조치를 실행하려고합니다. 장바구니에 추가 된 항목을 삭제하고 브라우저가 손상된 경우 응용 프로그램과 데이터베이스의 원래 상태로 되돌리고 싶습니다.asp.net에서 브라우저 크래시 이벤트가 발생했습니다.

어떻게하면됩니까?

+0

서버에서 브라우저가 충돌했는지 또는 사용자가 브라우저를 닫았거나 전원이 꺼져 있는지 알 수 없습니다. – ZippyV

+1

나는 그것이 가능하다고 생각하지 않는다. 그러나 그런 일이 성취 될 수 있는지에 관해 듣고 싶다. – adt

+0

가장 좋은 방법은 사용자 세션 종료 이벤트에 첨부하는 것입니다. – McGarnagle

답변

0

여러 요인으로 슬프게도 불가능합니다.

1) 그물은 상태가 없다. 즉, 웹 서버는 웹 브라우저에 대해 전혀 모르는 상태이다. 요청을 처리 한 후에는 브라우저와 통신 할 수 없습니다.

2) 브라우저에 동일한 문제가 있습니다. 일단 서버에 콘텐츠를 요청하고 가져온 것이 그 것입니다. 사용자가 브라우저를 닫거나 세션 시간 초과를 허용하거나 브라우저가 충돌하는 경우 서버는 이에 대해 알지 못하며 브라우저는이를 알리지 않습니다.

3) 브라우저가 충돌하면 충돌이 발생하여 더 이상 작동하지 않는다는 이유로 모든 위치에서 정보를 전송할 수 없습니다.

사용자 세션이 끝날 때 발생하는 session_end 이벤트에 연결할 수 있습니다 (사용자가 특정 시간 동안 아무 것도 요청하지 않은 경우 세션이 종료 됨, 기본값은 20 분임). 세션이 끝난 이유를 알릴 방법이 없습니다. 사용자 브라우저가 다운되거나, 브라우저가 닫혔거나, 지루해져 다른 사이트로 갔을 수 있습니다.

일반적으로 사용자가 체크 아웃 할 때까지 응용 프로그램 상태를 업데이트하지 않으므로 삭제해야 할 유일한 것은 바구니입니다. 그렇게하기 위해 장바구니 테이블에 datetime 열을 설정하고 장바구니가 업데이트 될 때마다 업데이트합니다. 그런 다음 매일 데이터베이스에서 예약 된 작업을 실행하여 바구니를 보관하는 시간보다 오래된 모든 바구니를 삭제합니다.

+0

그래, 맞아 .. 팀 Tim을 도와 줘서 고마워. :) – writeToBhuwan

관련 문제