일부 JavaScript 상태 정보를 내 서버 onUnload에 어떻게 다시 저장할 수 있나요?

StackOverflow https://stackoverflow.com/questions/73335

  •  09-06-2019
  •  | 
  •  

문제

나는 가지고있다 ExtJS 웹 페이지의 그리드에 사용자가 페이지를 떠날 때 상태 정보 중 일부를 서버에 다시 저장하고 싶습니다.onUnload에서 Ajax 요청으로 이 작업을 수행할 수 있나요?그렇지 않다면 더 나은 해결책은 무엇입니까?

도움이 되었습니까?

해결책

Ajax 요청을 사용할 수 있지만 비동기 요청이 아닌 동기 요청으로 만들어야 합니다.또는 사용자가 변경할 때마다 상태를 저장하면 사용자의 브라우저가 충돌하는 경우에도 데이터를 보호할 수 있습니다.

다른 팁

동기식 ajax 호출을 사용하라는 위의 답변이 있으며 이것이 최선의 시나리오입니다.문제는 언로드가 모든 곳에서 작동하지 않는다는 것입니다.당신이 보면 여기 Safari에서 언로드 이벤트를 얻는 데 도움이 되는 몇 가지 요령을 찾을 수 있습니다...사용자가 다시 돌아올 상황을 대비해 Google Gears를 사용하여 사용자 측 콘텐츠를 저장할 수도 있지만, 해당 정보를 유지하는 완전히 안전한 유일한 방법은 사용자가 페이지에 있거나 변경하는 동안 지속적으로 정보를 보내는 것입니다.

언로드 시 자바스크립트를 사용하여 쿠키를 설정할 수도 있습니다.쿠키에 비해 Ajax의 장점은 보고에 사용할 수 있는 데이터가 있고 사용자(로그인한 경우)가 여러 시스템에서 데이터를 활용할 수 있다는 것입니다.

Ajax 사용의 단점은 브라우저 창을 실제로 닫는 속도가 느려질 수 있다는 것입니다. 이는 서버의 응답이 느리면 짜증스러울 수 있습니다.

사용자가 페이지를 떠나는 방법에 따라 다릅니다.GUI에 '로그오프' 버튼이 있는 경우 사용자가 이 버튼을 클릭하면 Ajax 요청을 트리거할 수 있습니다.그렇지 않으면 onUnload에서 요청하는 것이 좋은 생각이 아니라고 생각합니다.앞에서 말했듯이 동기식 요청을 해야 합니다...쿠키 솔루션의 대안은 숨겨진 텍스트 필드입니다.이는 일반적으로 다음과 같은 도구에서 사용되는 기술입니다. RSH Ajax와 관련된 역사 문제를 다룹니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top