2014-06-23 2 views
0
 $.ajax({ 
     type  : 'POST', 
     url   : requesturl, 
     data  : data, 
     dataType : 'json', 
     success  : function(data) { 
      location.reload(); 
      $('#status').append(
           // append something here!! 
      ); 
      $('#loader').hide();     
     } 
    }); 

먼저 페이지를 다시로드하고 내 요소를 추가해야하는 몇 가지 문제가 있습니다. 페이지가 다시로드 될 때 초기화되고 추가하려고하는 요소를 지울 것이므로이 기능이 필요합니다.아약스 성공 호출에서 페이지를 다시로드 한 후 DOM 요소를 추가합니다.

+0

이 작업을 수행 할 수 없습니다. 해시 또는 쿼리 문자열 변수를 추가 한 다음 해당 변수가 있는지 확인해야합니다. – pmandell

+0

이것은 모순되는 것 같습니다. 페이지를 다시로드해야 할 때 AJAX를 사용하여 데이터를 가져 오는 이유는 무엇입니까? 또는 페이지를 새로 고침하려는 이유는 무엇입니까? –

+0

페이지가 다시로드되면 JavaScript 코드 *가 실행을 중지합니다 *. 이는 브라우저가 과거에 사용자가 방문한 페이지의 코드를 계속 실행하지 않기 때문입니다. 페이지를 다시로드하지 않고 AJAX *를 통해 콘텐트를 추가하거나 페이지를 다시로드하는 동안 콘텐트 서버 측을 수정하여 클라이언트에 반환하십시오. – David

답변

1

location.reload()으로 전화하면 너무 늦습니다. 페이지가 다시로드 된 후 스크립트가 계속 실행되지 않습니다.

일반적인 접근 방법을 다시 생각해야 할 수도 있습니다. 일반적인 접근법은 AJAX를 전혀 사용하지 않는 것입니다 (어쨌든 페이지를 새로 고침 할 예정이므로). 서버에 추가 할 내용을 포함하여 원하는 새 상태로 페이지를 렌더링하게하십시오.

+0

감사합니다.이 사실을 알지 못했습니다. – user3662516

0

여기에 location.reload()를 사용하면 안됩니다. 대신 $ ('. yoursubClass'). remove()를 사용하고 append 메소드를 호출하십시오.

$.ajax({ 
     type  : 'POST', 
     url   : requesturl, 
     data  : data, 
     dataType : 'json', 
     success  : function(data) { 
      $('#status').find('yourRemovableElements').remove(); //modify yourRemovableElements accordingly 
      $('#status').append(
           // append something here!! 
      ); 
      $('#loader').hide();     
     } 
    }); 
+0

트릭을해야합니다. 이것에 투표 해, 고마워. 내 접근 방식은 약간 벗어났다. – user3662516

+0

유용 할 경우 제 대답을 수락하십시오 .. –

관련 문제