我有一个数据库,它包含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