사용자가 브라우저를 닫을 때 물건을 저장하기 위해 put 요청을 실행하려고합니다. 나는 각도를 사용하고 있으며 onbeforeunload 및 onunload 이벤트를 사용하여 시도했지만 원하는대로 작동하지 않습니다. 리소스를 업데이트하고 싶습니다.사용자가 브라우저를 닫을 때 http가 입력됩니다.
$window.onbeforeunload = function(){
myResource.foo = closingBrowser();
myResource.$update();}
는 피들러 실행으로 나는이 풋 요청을하지 않는 것을 알 수있다. 내가 $window.onunload
을 사용할 때가 아닙니다. 그러나 onbeforeunload
에 대한 return 문을 입력하면 확인 상자가 나타나고 확인을 클릭하면 피들러가 put 요청이 완료되었음을 알립니다. 이제이 팝업을 원하지 않습니다. 사용자가 브라우저를 닫을 때 그냥 넣기를 원합니다.
이러한 방법으로이 작업을 수행 할 수있는 방법이 있습니까? 아니면 다른 방법으로 해결해야합니까 (많이 알려주십시오)?
업데이트 :
좀 더 많은 테스트를했고, 일부 일치하지 않는 행동을 발견했다. 인터넷 익스플로러 (11)에서 : return 문이 있다면 고전적인 팝업이 있습니다. 그러나 취소를 누르고 페이지로 돌아 가면 PUT 만 보냅니다. 나가기 위해 OK를 누르면 PUT이 발행되지 않습니다.
크롬 : 돌아 가기 위해 취소를 누르거나 떠나려면 확인을 계속해도 PUT은 계속 전송됩니다. 크롬에서 작동하지만 크롬을 사용하지 않는 또 다른 '해킹'(?)은 $update()
다음에 루프가 있어야합니다 (팝업이없고 원하는 동작 임). while(!myResource.$resolved){}
(또는 단지 for-loop 몇 백만 번 반복하는 것도 효과가 있었지만,보기 흉한 것처럼 보였습니다.) 크롬은 실제로 PUT을 전송합니다 (IE는 그렇지 않았습니다).
IE에서 어떻게 복제 될 것이라고 생각하십니까?
나는 파이어 폭스에 대한 광범위한 테스트를 수행하지 않았지만, 조금은 크롬과 비슷하게 보였다.
window.close 사용하여
페이지가 닫히면 브라우저가 put 쿼리를 중단합니다. –