我最近學習了SQL,Ajax和(面向對象)PHP的基礎知識,我通過創建用戶構建信息源來使用它。但是,目前Feed只會加載數據庫中最近發佈的20個帖子(因爲一次加載所有帖子會對頁面加載時間產生負面影響)。這是在我的網站上創建無限滾動系統的正確方法嗎?
我已經決定試圖實現一個無限滾動系統(類似Twitter和Facebook使用的方法)將是這個問題的最佳解決方案,但我不完全確定如何做到這一點。
我知道我需要的第一件事是判斷用戶是否已到達頁面底部的函數。要做到這一點,我已經寫了下面的簡單的jQuery:
$(window).scroll(function() {
var scrollBottom = $(document).height() - $(document).scrollTop() - $(window).height();
if(scrollBottom < 200) {
// send Ajax request
}
});
這段代碼應該工作,但我關心的多個Ajax請求的風險被髮送到服務器之前,如果用戶滾動多次帖子的提要已更新。
我收集到我需要做的下一件事是發送一個Ajax請求。當然,目前檢索第20個職位在數據庫中的腳本使用看起來像
$query = "SELECT * FROM table DESC LIMIT 0,20";
我猜,我需要的東西來代替這一條線,如PHP/SQL的
$query = "SELECT * FROM table DESC LIMIT " . $x . "," . $x+20;
然後創建另一個腳本來跟蹤Ajax請求已發送多少次,並使用它來確定變量$ x以確保獲取正確的結果。
最後我知道我需要創建某種回調函數來顯示已被提取的帖子。
這是用來創建無限滾動系統的正確(最佳)方法嗎? 另外,我怎麼能改變jQuery停止多個請求被髮送?
定義'正確' – Strawberry
如果它工作=正確。如果不是=不正確 – nogad
您可能會覺得這個有趣:http://midnightprogrammer.net/post/Infinite-Scrolling-In-ASPNET-With-jQuery/ – Velocibadgery