취업/PHP

[php] 페이지 이동이나 브라우저 종료에 따른 처리 진행하기.

카슈밀 2022. 3. 31. 16:14
반응형

크롬 기준.

인터넷에서 굴러다니는데, 딱히 효과는 없었다.

window.addEventListener('beforeunload', (event) => {
  // 표준에 따라 기본 동작 방지
  event.preventDefault();
  // Chrome에서는 returnValue 설정이 필요함
  event.returnValue = '';
});

작동은되는데 의외로 안 되더라고...

 

그래서 돌아다니다가 찾았는데, 해당 코드는 제대로 먹혔다.

$(document).ready(function () {
    $(window).on('beforeunload', async function(){
        await function () {
        };
    });   
}

그런데, 위처럼 쓰면 알림창이 뜬다.

이거 없이 하고 싶더라.

 $(window).bind("beforeunload", function (){
        $.ajax({
                url: '주소',
                data : {
                    내용 하드 코딩. 변수에 담다가 뻗는다.
                },
                type: 'POST',
                dataType : 'html'
            })
            .done(function(data) {
                
            })
            .fail(function(e) {
                
            });
    });

async를 제거하고, 진행하면 된다.

기존에는 커스텀 함수를 통해서 post나 get을 호출했는데, 이걸 쓰면 통신이 안되더라.
변수값을 제대로 못 가져오는 문제인지 error가 뜸.

그냥 직관적으로 ajax를 안에 넣었더니 그제야 제대로 통신 진행되어 해결했다.

 

 

++ 문제 발생.

브라우저 종료를 감지하는 로직이 없다. 그냥, 웹소켓이나 통신로직으로 체크해줘서

어느순간 결제 안되면 중지하는 로직을 추가 해줘야할 듯...

728x90