jQuery是一個(gè)JavaScript庫(kù),AJAX則是一種基于瀏覽器的異步通信技術(shù),可以在不重新加載整個(gè)頁(yè)面的情況下,更新部分頁(yè)面內(nèi)容。如果在網(wǎng)站上使用了分頁(yè)功能,那么就可以使用jQuery AJAX實(shí)現(xiàn)滑動(dòng)分頁(yè)效果,提升用戶體驗(yàn)和頁(yè)面速度。
// jQuery AJAX實(shí)現(xiàn)滑動(dòng)分頁(yè) $(function(){ var loading = false;// 防止反復(fù)點(diǎn)擊 // 監(jiān)聽元素滾動(dòng) $(window).scroll(function () { var distanceBottom = $(document).height() - $(window).height() - $(window).scrollTop(); // 如果距離底部不足100像素,同時(shí)沒有正在加載數(shù)據(jù) if (distanceBottom< 100 && !loading) { loading = true;// 正在加載中 $.ajax({ url: 'http://example.com/page' + currentPage + '.html',// 當(dāng)前頁(yè)碼 type: 'GET', dataType: 'html',// 返回值類型 success: function (data) { if (data) { $('#list').append(data);// 追加數(shù)據(jù) currentPage++;// 下一頁(yè)頁(yè)碼 } loading = false;// 加載完成 } }); } }); });
上述代碼使用了$(window).scroll()監(jiān)聽窗口滾動(dòng)事件,當(dāng)滾動(dòng)距離達(dá)到底部100像素以下時(shí),發(fā)送Ajax請(qǐng)求,通過追加數(shù)據(jù)到列表中實(shí)現(xiàn)分頁(yè)效果。同時(shí),為了防止多次發(fā)送請(qǐng)求,使用loading變量進(jìn)行鎖定,只有當(dāng)前請(qǐng)求完成后才能發(fā)送下一個(gè)請(qǐng)求。具體實(shí)現(xiàn)時(shí),需要在服務(wù)器端提供分頁(yè)數(shù)據(jù)接口,返回對(duì)應(yīng)頁(yè)碼的HTML數(shù)據(jù)。