Jquery ajax在滚动时多次调用

时间:2014-04-11 06:09:08

标签: javascript jquery ajax onscroll

在下面的代码中,我在滚动时调用ajax。 但这是多次调用ajax。为了限制这个,我添加了setTimeout函数和flag(即isActive),它仍然会调用两次 如果我出错了,请帮帮我 提前致谢

var isActive = false;
var sIndex =12;
var myflag = '1';   
var offSet = 12;
var timeout;
jQuery(window).scroll(function () {
  if(typeof timeout == "number") {
  window.clearTimeout(timeout);
  delete timeout;
 }
timeout = window.setTimeout( check, 500);
});


function check(){
var cat = $(".mi-selected").attr('id');
var tecID = $("#technologyID").val();
    var notSameInd = $("#notSameInd").val();
    var sIndex =$("#startInd").val();
if (!isActive &&  ($(window).scrollTop() + $(window).height() == $(document).height()) && (sIndex !== notSameInd) ) {
   var isActive = true;
jQuery.ajax({
              type: "POST",
              url: 'http://some.com/responcePortfolio.php',
              data: {
             tecID:tecID,
                  cat:cat,
                  startIndex:sIndex,
                  offset:offSet,
                  count_now:count_now
               },
              success: function (result) {
            if(result !== ''){
                jQuery("#LoaderImage").hide();
                    jQuery("#portfolioList").append(result);
                $("#notSameInd").val(sIndex);
                    sIndex = parseInt(sIndex) + parseInt(offSet);
                $("#startInd").val(sIndex);
              }
                  else{    
                                   jQuery("#LoaderImage").hide();
               }
            isActive = false;
               },
              error: function (error) {
                  //alert(error);
              }
          });    

}

}

0 个答案:

没有答案