我有一个数据库,里面有大约 5000 本书。当用户进入页面时,我不想使用 simple 加载书籍select * from BOOkTABLE
,我的方法是按照用户的需要进行,所以我希望当用户向下滚动时,我可以从数据库中获取数据。可能是 15-20 本书的大块,这是一个好方法吗?有什么选择吗?
其次,我在 div 顶部有字母,因此如果用户点击"Z"
我们可以获取以开头的书籍Z
并在 DIV 中显示他。
我有一个数据库,里面有大约 5000 本书。当用户进入页面时,我不想使用 simple 加载书籍select * from BOOkTABLE
,我的方法是按照用户的需要进行,所以我希望当用户向下滚动时,我可以从数据库中获取数据。可能是 15-20 本书的大块,这是一个好方法吗?有什么选择吗?
其次,我在 div 顶部有字母,因此如果用户点击"Z"
我们可以获取以开头的书籍Z
并在 DIV 中显示他。
是的,您可以通过使用Ajax
向下滚动来做到这一点。类似的东西:
$(window).scroll(function () {
if ($(window).height() + $(window).scrollTop() == $(document).height()) {
$.ajax({
type: "POST",
url: 'abc.php',
async:false,
data:"pagedata="+pageData ,
cache: false,
success: function(data){
}
});
}
});
abc.php
您可以根据您的要求设置查询,并在向下滚动时呈现要显示的 html(response) 。
对于第一个问题,使用 ScrollTop() 可以在滚动像素间隔后从 PHP 加载数据迭代。
您将需要一个 PHP 文件和 JavaScript。
这是徒手写的,没有经过测试,所以我不能保证这些会起作用,但请尝试以下方式:
JavaScript
jQuery(document).ready(function($){
// Set the number of pixels from the top you want the event to fire
// Select the number of books you would like to load each time
// i = number of loads you've called
var reloadAfter = 500;
var numberBooks = 20;
var i = 1;
$(window).scroll(function() {
if ( $(this).scrollTop() >= reloadAfter )
{
$.get("getbooks.php", {number:numberBooks , counter:i} )
.done(function(data){
$('#books').append("Title:", data.title)
.append("Author:", data.author);
});
reloadAfter = reloadAfter + reloadAfter;
i++;
}
});
PHP
$numberBooks = $_GET['number'];
$i = $_GET['counter'];
$upper = ( $numberBooks * $i );
$lower = ( $upper - $numberBooks );
$get_books = mysql_query('SELECT * FROM BOOkTABLE WHERE id > $lower AND id < $upper');
echo json_encode($get_books);