2013-04-22 45 views
0

我有一個頁面,我從我的sql數據庫表中抓取數據並加載它。需要在滾動中加載數據。因爲我從數據庫表中獲取數據,所以很難確定哪一行已經被加載並加載了除此之外的數據。那麼是否有任何方法基於窗口高度我可以向下滾動顯示更多的數據 - 除了設置溢出滾動身體或主容器?任何幫助表示讚賞。謝謝。顯示滾動jquery上加載的內容

回答

0

你可以跟蹤一個狀態變量,告訴你的php腳本返回什麼偏移量。

var offset = 0; 
var loading = false; 

$(window).on('scroll', function(){ 

    if($('#element').offset().top >= ($(window).scrollTop() - $(window).height())) 
    { 
     loading = true; 
     $.ajax({ 
      //all your ajax settings here 
      data: {offset: offset} 
      success: function(data){ 
       // add data to dom here 
       loading = false; 
       offset += 1; 
      } 
     }); 
    } 

}); 

通過這種方式,您可以將偏移量傳遞到您的腳本並返回與此數字相關的數據,但是您選擇解釋該數據。

在mysql中使用偏移量。我會給出一個PHP的例子,因爲你沒有指定語言:

$limit = "0, 20"; 
if(isset($_POST['offset'])) 
{ 
    // obviously you should sanitize this, but for example we 
    // ignore that for now. 

    $limit = ($_POST['offset'] * 20) .", 20"; 
} 

$sql = "SELECT * FROM `table` ORDER BY `date` DESC LIMIT $limit"; 
// run your query and echo the results 

你看,偏移剛剛獲得通過改變查詢獲取數據的下一塊。在JavaScript中,我們在成功時增加了這個數字,所以下一次窗口到達底部時,它會傳遞下一個偏移量到php並返回下一個增量。我們使用任意數字20,假設您要返回某些具有行的數據,例如博客條目,圖像等。

+0

感謝您的快速回復。不要介意我聽起來天真,但你在談論什麼是抵消? – ash 2013-04-23 00:09:01

+0

我更新了一個示例。希望它是有道理的 – 2013-04-23 00:14:51

+0

,這是完全有道理的。謝謝。讓我試試:) – ash 2013-04-23 00:20:19