2017-10-06 53 views
0

我想實現加載更多的數據,當你滾動我的web應用程序的功能。 我設置了一個onscroll監聽器來在用戶到達頁面結尾時獲取數據。停止查詢數據一旦到達結束

這裏是獲取數據的功能:

var lastKey = ''; 
var myData = []; 

async fetchData(){ 
     try{ 
      var snap = await firebase.database().ref(category).orderByKey().startAt(lastKey).limitToFirst(15).once('value'); 
      snap.forEach(childSnap => { 
       myData.push(childSnap.val(); 
       lastKey = childSnap.key; 
      }); 
     }catch(err){ 
      //handle errors 
     } 
    } 
} 

的代碼工作正常。 如何知道列表已結束,以便我可以設置標誌並停止調用上述功能並通知用戶不再有數據要顯示

回答

2

如果您每次查詢15個元素和結果少於15個元素的長度,你已經達到了最後。

+0

但是,我如何知道我提取的元素的長度。我必須做'Object.keys(snap).length' –

+0

好吧,我設置了一個計數器,並在forEach循環的每次迭代中增加了計數器1,如果計數器小於15,檢查是否設置了停止標誌更多提取....謝謝。如果有更好的方法,請回復 –