2014-06-17 2 views
0

내 페이지로 스크롤하여 내용을로드하는 동안 문제가 발생했습니다. 아약스의 실행 속도가 너무 빠르기 때문에 두 번째, 세 번째 등은 DOM에로드 된 첫 번째 아약스 호출에서 올바른 정보를 얻지 못합니다.마지막으로 완전히로드되고 성공한 경우에만 ajax를 다시 실행하십시오.

어떻게 작성합니까? 마지막 아약스 호출이 완료되고 성공한 경우에만 스크립트가 실행됩니다. 마지막 아약스 호출이 완료 될 때까지 위와 아래로 스크롤 할 때마다 건너 뜁니다. 그리고 아약스는 처형 될 수 있습니다. 아약스를로드 할 때까지 더 이상 반복해서.

여기 내 jQuery 스크립트입니다.

<script type="text/javascript"> 
$(document).ready(function(){ 

    $(window).scroll(function(){ 

      if ($(window).scrollTop() <= $(".wrapper_ac").offset().top + $(".wrapper_ac").height()) { 

      $(document).ajaxStart(function() { 
      var ajaxURLvalue = '../../modules/language_text_loading/load_content.php'; 
      var langID = 'x'; 
      var onID = 'x'; 
      var setLimit = 'x'; 
      var setIn = 'after'; 
      var theme = 'x'; 
      var setInWhere = 'x'; 
      var conID = 'x'; 

      loadInstant(ajaxURLvalue, langID, onID, setLimit, setIn, theme, setInWhere, conID); 
      }); 
      } 
    }); 

}); 
</script> 

이것은 제 기능입니다.

function loadInstant(ajaxURLvalue, langID, onID, setLimit, setIn, theme, setInWhere, conID) {  

    var temp_s = $(".ltlID:last").attr("id"); 
    var split_ltlID = temp_s.split(':'); 
    var ltlID = split_ltlID[0]; 
    var acContentBoxID = split_ltlID[1]; 

    var dataString = { 
     action: 'load', 
     last_ltlID: ltlID, 
     //sharedID:acContentBoxID_sharedID, 
     langID:langID, 
     setInWhere: setInWhere, 
     onID:onID, 
     theme:theme, 
     conID:conID 
    }; 

     $.ajax({ 
      type: "POST", 
      url: ajaxURLvalue, 
      data: dataString, 
      cache: false, 
      success: function(html){ 

         $("#accordionContent"+acContentBoxID+":last").after(html); 

     });  
}; 

감사합니다.

global_variable =  $.ajax({ 
      type: "POST", 
      url: ajaxURLvalue, 
      data: dataString, 
      cache: false, 
      success: function(html){ 

         $("#accordionContent"+acContentBoxID+":last").after(html); 

     }); 

는 AJAX 호출 검사하기 전에 변수가 다음과 같이 트루 경우 :

if(global_variable){ 
    return false; 
} 

이 내가 무엇을 할 것이라고

답변

0

음이 같은 글로벌 변수에 아약스 기능을 저장할 수있다 하나의 실행이 끝나기 전에 호출되는 모든 아약스 호출을 중지합니다. 나는 그것이 당신을 돕기를 바란다!

+0

하지만이를 확인하기 위해 ajax를 실행하기 전에 global_variable을 설정하면 안됩니까? 원인이 맞지 않습니다. 오류가 발생합니다. 변수를 찾을 수 없습니다. global_variable – Chak

+0

예 전역 변수가 함수 외부에서 var global_varible로 설정되었습니다. –

+0

나는 이해하고 있는지 확신 할 수 없다. 내가 당신의 코드를 추가했지만 어떤 이유로 위와 아래로 스크롤하는 동안 여전히 그냥로드 및로드 – Chak

관련 문제