웹 페이지에 ExtJS 격자가 있으며 사용자가 페이지를 떠날 때 상태 정보를 다시 서버에 저장하고 싶습니다. Unload에서 Ajax 요청으로이 작업을 수행 할 수 있습니까? 그렇지 않은 경우 더 나은 해결책은 무엇입니까?Unload에서 내 JavaScript 상태 정보를 다시 서버에 저장할 수 있습니까?
답변
Ajax 요청을 사용할 수 있지만 비동기 요청이 아닌 동기 요청으로 지정하십시오. 또는 사용자가 변경을 수행 할 때마다 상태를 저장하기 만하면됩니다. 이는 사용자의 브라우저가 손상된 경우에도 데이터를 보호합니다.
언로드시 javascript를 사용하여 쿠키를 설정할 수도 있습니다. 나는 Ajax가 쿠키보다 유리한 점은보고를 위해 사용할 수있는 데이터가 있고 로그인 한 사용자가 다른 컴퓨터에서 데이터를 활용할 수 있다는 것입니다.
아약스 사용의 단점은 브라우저 창을 실제로 닫을 때 속도가 느려지므로 서버가 느리게 응답하면 성가신 수 있습니다.
사용자가 페이지를 떠나는 방식에 따라 다릅니다. GUI에 '로그 오프'버튼이 있으면 사용자가이 버튼을 클릭 할 때 Ajax 요청을 트리거 할 수 있습니다. 그렇지 않으면 onUnload에서 요청하는 것이 좋습니다. 앞서 말했듯이 동기식 요청을해야합니다 ... 쿠키 솔루션의 대안은 숨겨진 텍스트 필드입니다. 이는 보통 ajax와 함께 제공되는 내역 문제를 처리하는 RSH과 같은 도구에서 사용되는 기술입니다.
동기식 ajax 호출을 사용하는 것이 가장 좋은 시나리오입니다. 문제는 언로드가 어디서나 작동하지 않는다는 것입니다. here을 보면 사파리에서 언로드 이벤트를 얻을 수있는 몇 가지 트릭을 발견 할 수 있습니다 ... 또한 사용자가 돌아올 상황에서 Google Gears를 사용하여 콘텐츠 사용자 측을 저장할 수도 있지만, 그 정보는 사용자가 페이지에 있거나 변경을하는 한 지속적으로 전송하는 것입니다.