當(dāng)我們?cè)诰W(wǎng)頁(yè)中需要加載大量數(shù)據(jù)時(shí),普通的加載方式可能會(huì)導(dǎo)致頁(yè)面卡頓,用戶(hù)體驗(yàn)不佳。這時(shí)候,就可以使用jquery ajax 滾動(dòng)加載來(lái)達(dá)到更好的效果。
滾動(dòng)加載是指當(dāng)用戶(hù)向下滾動(dòng)網(wǎng)頁(yè)時(shí),會(huì)自動(dòng)加載下一頁(yè)內(nèi)容,而不是一次性把所有數(shù)據(jù)都加載出來(lái)。這樣做可以減輕服務(wù)器的負(fù)擔(dān),也可以提高用戶(hù)的體驗(yàn)。
$(window).scroll(function() { // 當(dāng)滾動(dòng)到底部時(shí) if ($(document).scrollTop() + $(window).height() == $(document).height()) { // 發(fā)送ajax請(qǐng)求,加載下一頁(yè)數(shù)據(jù) $.ajax({ url: 'your-url', dataType: 'json', type: 'POST', data: { page: next_page }, success: function(data) { // 成功獲取到數(shù)據(jù)后,將它添加到html中 // 這里略去具體的代碼 } }); } });
代碼中,首先在window上綁定一個(gè)scroll事件,當(dāng)頁(yè)面滾動(dòng)時(shí)就會(huì)觸發(fā)這個(gè)事件。在事件處理函數(shù)中,首先判斷是否滾動(dòng)到了底部。
如果滾動(dòng)到了底部,就發(fā)送ajax請(qǐng)求,向服務(wù)器請(qǐng)求下一頁(yè)數(shù)據(jù)。其中,需要傳遞一個(gè)page參數(shù),表示當(dāng)前頁(yè)碼。在ajax的success回調(diào)函數(shù)中,將獲取到的數(shù)據(jù)添加到html中即可。
需要注意的是,next_page是一個(gè)全局變量,每次發(fā)送ajax請(qǐng)求時(shí)都需要更新它,以防止重復(fù)加載數(shù)據(jù)。