2011-07-31 6 views
0

세션이 만료되거나 창이 닫히기 전에 안정적으로 함수를 호출 할 수있는 방법이 있습니까? 과도한 mysql 쿼리를 피하기 위해, 내 스크립트는 데이터 변수를 수집하고 PHP $_SESSION 변수로 변경하고 데이터베이스와 상호 작용이 필요할 때 mysql을 업데이트합니다. 이 방법으로이 데이터를 저장하므로 사용자가 창을 닫거나 세션이 만료되기 전에이 데이터가 데이터베이스에 커밋되도록하는 확실한 방법이 있습니까?세션 타임 아웃을 닫기 전에 브라우저에서 함수를 호출하는 신뢰할 수있는 방법은 무엇입니까?

저는 PHP, javascript 및 jquery 태그가 있습니다. 왜냐하면 나는 그렇게하는 방법이 열려 있기 때문입니다.

추가 : 죄송합니다. 고객이 자바 스크립트를 사용할 수 있다고 가정합니다. 나는 특별한 상황에 처해 있는데, 나는 그렇지 않은 고객에게 특히 관심을 기울이지 않는다.

+1

"과도한"쿼리는 어떻게됩니까? 진정한 안전한 방법은 데이터베이스를 즉시 업데이트하는 것뿐입니다. 그렇지 않으면 크래시가 발생하지 않고 자바 스크립트를 실행하고 일반적으로 완벽하게 작동하도록 클라이언트 (브라우저)에 의존해야합니다. 또는 잠시 동안 클라이언트로부터 요청을받지 못한 경우 서버의 백그라운드에서 실행해야하는 모든 것이 필요합니다. 어느 쪽이든, 그것은 까다 롭습니다 – Flambino

+0

@Flambino 글쎄, 쿼리의 양은 현재 질문의 범위에 없습니다. 서버의 잠재적 인로드가 가변적이기 때문입니다. '$ _SESSION'을 통해 정보를 처리하지 않으면 각 클라이언트는 1/10 초마다 3 회의 쿼리를 처리 할 수 ​​있습니다. 우리는 단지 쿼리의 양이 영향을 미치지 않는다고 가정 할 것입니다. 질문은 동일하게 유지됩니다. – Blake

+1

사용자의 인터넷 연결이 갑자기 중단 된 경우 어떻게됩니까? 나는 너가 완전하게 견실 한 무엇을 발견 할 것이라는 점을 의심한다. – jtbandes

답변

0

많은 검색/토론 중입니다. setTimeout() 메서드를 사용하여 정기적으로 데이터를 데이터베이스에 커밋합니다. 사용자는 Google 문서 도구 모델과 유사하게 반환시 일부 데이터 손실로 계속할 수 있습니다.

관련 문제