2011-03-28 2 views
3

윈도우가 언로드되기 전에 jquery ajax() 함수를 호출해야합니다. 내 경우에는 그것의 POST 및 반환 결과 상관 없어, 그냥 데이터베이스를 업데이트 할 싶어요.창이 언로드되기 전에 jquery ajax 함수를 호출하는 가장 확실한 방법은 무엇입니까?

그래서 대답은 unload 이벤트에 함수를 바인딩하는 것, 즉 jquery unload() 함수를 사용하는 것으로 보입니다.이 함수는 ajax 호출을합니다. 또한, 당신이 호출에 동기 매개 변수를 추가 해야하는지 알아. 즉, async : false를 jquery ajax() 호출에 추가합니다.

그러나이 모든 시도하고 IE8에서 작동하지 않습니다! 여러 번 테스트 해봤지만 IE8에서는 작동하지 않습니다. Firefox 및 Chrome에서 올바르게 작동합니다.

낯선 사람이라도 IE8 애플리케이션 전체를 종료 한 후 통화가 진행되는 것처럼 보입니다. 캐시되고 있습니까?

그래서 다른 사람들은 jquery bind()를 사용하여 ajax beforeunload를 바인드 할 것을 제안합니다. 그러나 이것이 모든 브라우저에서 작동하는지에 대한 몇 가지 답변이있는 것으로 보입니다.

나는 "해킹"방법처럼 보이기 때문에 아직 beforeunload를 시도하지 않았습니다. 그러나 그것이 작동한다면 나는 그것이 작동하는 한 실제로는 상관하지 않는다.

답변

0

페이지의 body 태그에서 함수를 호출 할 수 있습니까?

<body onbeforeunload="funcName(param)"> 

그런 식으로 페이지가 언로드 될 때마다 함수가 호출되며 바인딩에 대해 걱정할 필요가 없습니다.

+1

그렇지만 jquery bind ("beforeunload")를 사용하는 것과 동일합니다. ajax 호출이 언로드되거나 beforeunload에 바인딩되어야 하는가? – dehlenbe

+0

아, 알겠습니다. InternetExplorer 및 구형 브라우저에서는 언로드하도록 바인딩하기 때문에 브라우저를 닫는 프로세스와 동시에 실행하려고하기 때문에 beforeunload에 바인딩합니다. 개인적으로 나는 항상 beforeunload를 사용합니다. – Loogawa

+0

소리가 적당합니다. IE 용 언로드 문제가 문서화 된 곳으로 연결되는 링크가 있습니까? – dehlenbe

관련 문제