我有一個數據庫,它包含1000多條記錄。我必須顯示它在前端的PHP頁面,如果我顯示所有它將需要更多的時間來加載,所以如果用戶滾動信息應該在滾動後獲取。就像Facebook和Pinterest一樣。如何實現這一目標? 我的DB: - MySQL的 服務器: - WAMP如何在滾動時從mysql數據庫獲取數據
回答
使用jQuery(或您喜愛的圖書館),當用戶到達頁面的最後檢測,然後就觸發一個Ajax請求下一個N結果的服務器。
例如:
JavaScript部分:
var n = 0;
$(document).ready(function() {
$(window).scroll(function() {
if ($('body').height() <= ($(window).height() + $(window).scrollTop())) {
$.ajax({
url: "my_page.php",
data: {'n' : n},
context: document.body
}).done(function(data) {
n += 1;
console.log(data); // <--- do stuff with received data here
});
}
});
});
PHP部分:
$n = $_POST['n'];
$n = 10 * $n;
$sql = "SELECT * FROM mytable LIMIT $n, 10"; // get 10 new entries each request.
可以請你提供一個鏈接或詳細解釋 – user1561923
@ user1561923 - 評論中至少有3個例子對你的原始問題 – ChrisW
好吧,JavaScript部分不需要任何進一步的例子,因爲這是一個複製和粘貼的工作示例。您需要在「my_page.php」中編寫代碼,每次獲取N個條目。我會更新我的答案。 – alexandernst
你的問題是通用的,很難用的代碼片段來回答。
這可能是僞碼的解決方案
- 通過做這樣
SELECT * FROM yourTable WHERE ..... ORDER BY .... LIMIT 50
- 使用jQuery查詢檢測滾動事件
- 做一個AJAX調用取件的默認數量(比如50)一旦檢測到滾動事件
- 您在哪裏再次讀取50個元素一個新的查詢,但這次考慮到已滾動(因此,加增量或偏移)
- 渲染來自AJAX 返回的元素
我得到了答案在這裏它很好 http://www.9lessons。方式/ 2009/07 /負載數據而渦卷與 - jQuery的php.html – user1561923
步驟1]取點點的jquery作爲一個幫助....
var countScroll= 0;
$(window).scroll(function()
{
if ($(window).scrollTop() == $(document).height() - $(window).height())
{
loadData();
}
countScroll++;
});
步驟2]以AJAX的幫助來調用loadData()函數
function loadData()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var res = xmlhttp.responseText;
document.getElementById("respDiv").innerHTML=res;
}
}
xmlhttp.open("GET","loadPageData.php?loadLimit="+countScroll,true);
xmlhttp.send();
}
步驟3 ]你的PHP頁面即loadPageData.php是...
$loadLimit= $_GET['loadLimit'];
$result = mysql_query("SELECT * FROM tableName limit $loadLimit");
if(mysql_num_rows($result)>0)
{
while($row = mysql_fetch_array($result))
{
echo $yourVariable= $row['fieldName'];
}
}
- 1. 如何從滾動數據庫中獲取數據?
- 2. 如何從Xamp獲取MYSQL數據庫
- 3. 獲取從MySQL數據庫
- 4. 如何在滾動或滾動時獲取更多JSON數據?
- 5. 我如何從mysql數據庫獲取數據到flash?
- 6. 如何僅從今年的mysql數據庫獲取數據
- 7. 如何從MySQL數據庫獲取今天/昨天的數據?
- 8. 如何使用Code Igniter從MySQL數據庫獲取數據?
- 9. 如何使用javascript從mysql數據庫中獲取數據?
- 10. 如何從mysql數據庫獲取數據到JSP頁面?
- 11. 如何從mysql數據庫中獲取特定數據vb.net
- 12. 如何使用ajax(laravel)從mysql數據庫獲取數據?
- 13. 如何從MySQL數據庫插入/獲取數據?
- 14. 如何從數據庫使用mysql獲取這些數據?
- 15. 如何從MySQL數據庫中獲取數據到ckeditor?
- 16. 如何根據小時從數據庫獲取數據?
- 17. 如何從單擊ListView時從數據庫中獲取數據
- 18. 從MySQL數據庫中獲取數組
- 19. 從mysql獲取數據時出現數據庫錯誤
- 20. 從MYSqL數據庫獲取數據時出錯
- 21. 附加到div時從mysql數據庫中獲取舊數據
- 22. 從數據庫更新數據從數據庫獲取數據
- 23. 如何從mysql數據庫中獲取當地時間
- 24. 如何使用php每小時從數據庫獲取數據?
- 25. iPhone Sqlite,從數據庫獲取數據時獲取重複數據庫
- 26. 如何在休眠時從數據庫獲取數據時限制重複數
- 27. 從arduino獲取數據到數據庫(mysql或任何)
- 28. 從組合數據庫登錄後從mysql數據庫獲取數據c#
- 29. 使用Python的odo庫從mysql數據庫獲取數據
- 30. 使用Android從在線MySQL數據庫獲取數據
不,請不,不是[無限滾動](http://blog.tommorris.org/post/21073443312/introducing-awf ulness-JS)。 – Quentin
這不是一個真正的MySQL問題,更多的是一個JavaScript的問題...嘗試http://stackoverflow.com/a/5212757/889604 – ChrisW
可能的重複[Facebook如何實現無限滾動?](http:// stackoverflow.com/questions/10404699/how-does-facebook-achieve-infinite-滾動) – Quentin