JavaScript滚动分页正在从数据库中检索相同的数据

时间:2018-07-16 12:16:53

标签: javascript php jquery ajax

我在我的网站中使用javascript滚动分页。当页面缩小时,某些项目将从数据库加载。问题在于,有时滚动分页会从数据库中获取相同的数据。我使用了async: false。但是,它减慢了加载速度。 JavaScript代码:

if (check !== null) {
  $(window).scroll(function(ev) {

    if ($(window).scrollTop() + window.innerHeight >= $('#footer').offset().top) {
      var last_id = $(".item:last").data("id");

      loadData(last_id);
    };

  });
}

var dataCount = 1;

function loadData(last_id) {
  $.ajax({
    url: 'some/url/loader',
    type: "get",
    data: {
      id: last_id
    },
    // async: false,
    success: function(data) {
      if (data) {
        dataCount++;
        $('#div').append(data);
        check = 1;
      } else if (!data) {
        console.warn('no data');
        check = null;
      }
    }
  });
}

控制器中的Loader方法:

public function actionLoader() {
  $id = $_GET['id'];
  $cat_id = $_GET['cat_id'];
  $posts = SomeModel::getItems($id);

  if (!empty($posts)) {
    $q = $this - > renderPartial('view', array('data' => $posts));
    echo $q;
  }
}

0 个答案:

没有答案