programing

Ajax 성공 후 페이지 다시 로드

batch 2023. 8. 14. 22:41
반응형

Ajax 성공 후 페이지 다시 로드

Ajax 호출 성공 후 리디렉션/재로드에 문제가 있습니다.상황은 다음과 같습니다.

삭제할 항목이 배열에 저장되어 있습니다.버튼을 클릭하면 Ajax를 통해 PHP 파일이 호출되며, 성공한 후 페이지를 다시 로드해야 합니다.하지만 저는 이것을 하는데 약간의 문제가 있습니다.저는 인터넷을 검색했지만 작동하는 해결책을 찾을 수 없었습니다.

데이터베이스에서 항목을 삭제하는 배열을 거친 PHP 파일을 가지고 있습니다.

foreach($arrayVals as $key=>$val)
{
    //bla bla
}

또한 jQuery 파트가 있습니다.

$("#button").live("click",function(){
    $.ajax({
        url, data, type... not important
        success: function(html){
                    location.reload();
                }
    });
});

제 말은, 코드는 먹히지만, 좋지는 않습니다.항목을 모두 삭제하지는 않지만 페이지를 다시 로드합니다.예를 들어, 삭제할 항목이 10개 있으면 6-7개처럼 삭제되고 3-4개 항목은 삭제되지 않은 상태로 유지됩니다.

PHP 파일이 모든 것을 처리하기에 충분한 시간이 없는 것처럼 페이지를 너무 빨리 다시 로드하는 것처럼 동작합니다. :D

BrixenDK가 맞습니다.

.ajaxStop()모든 Ajax 호출이 완료되면 콜백이 실행됩니다.여기가 당신의 핸들러를 배치하기에 가장 좋은 장소입니다.

$(document).ajaxStop(function(){
    window.location.reload();
});

AjaxStop을 사용하여 Ajax가 완료되면 코드를 실행합니다.

$(document).ajaxStop(function(){
  setTimeout("window.location = 'otherpage.html'",100);
});

다시 로드 페이지 사용

success: function(data){
   if(data.success == true){ // if true (1)
      setTimeout(function(){// wait for 5 secs(2)
           location.reload(); // then reload the page.(3)
      }, 5000); 
   }
}

AjaxSuccess를 사용하여 Ajax 성공 후 페이지를 다시 로드합니다.

$(document).ajaxSuccess(function(){
    window.location.reload();
});

언급URL : https://stackoverflow.com/questions/7881089/reload-the-page-after-ajax-success

반응형