我正在使用此代码在我的 MVC3 应用程序中加载 ajax 内容,但问题是当我向下滚动并加载所有页面时,然后再次触发 ajax 请求两次以加载记录。我设置了一条消息以在 Model== null 或 Model.Count() == 0 时显示,并且此消息在完整记录后加载两次。我的JS代码是:
var page = 0;
var _inCallback = false;
function loadProducts() {
if (page > -1 && !_inCallback) {
_inCallback = true;
page++;
$('div#loading').html('<p><img src="/Content/ajax-loader.gif"></p>');
$.get("/Sort/All/" + page, function (data) {
if (data != '') {
$("#productList").append(data);
}
if( page > 14 ) {
$(window).off("scroll");
$('div#loading').empty();
} else {
_inCallback = false;
}
$('div#loading').empty();
});
}
}
var dcList = true;
$(window).scroll(function () {
if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.95) {
loadProducts();
}
});
注意:在上面的代码中 14 是总页数
我的控制器是:
var pageno = page ?? 0;
if (Request.IsAjaxRequest())
{
return PartialView("_cpus", _data.GetALLPaginatedProducts(pageno ));
}
return View("Index", _data.GetALLProducts());
请查看并告诉我我在哪里做错了。
任何帮助都将不胜感激。
谢谢并恭祝安康