<script>
function getfilter(str){
if (str==""){
document.getElementById("result").innerHTML="";
return;
}
$.ajax({
url: "Views/pfolioresult.php?q="+str,
type: "GET",
// data: serializedData,
success: function ( responseText ) {
$("#result").html(responseText);
}
});
}
</script>
此代码工作正常。但是假设我在数据库中有10,000个数据。这段代码在加载后一次显示所有数据。如何根据加载时间逐个显示数据。这意味着当一个项目被加载时,就会显示它,而另一个项目则会继续显示。
发布于 2014-02-13 06:51:31
关于如何做到这一点的一些想法:
function show(skip)
{
$.ajax({
url: "Views/pfolioresult.php?skip=" + skip + "q="+str,
type: "GET",
// data: serializedData,
success: function ( responseText ) {
$("#result").html(responseText);
skip++;
show(skip);
}
});
}
show(0);
并且您在php中的查询应该如下所示:
SELECT *
FROM a
LIMIT $skip, 1
发布于 2014-02-13 06:55:40
你应该使用分页,然后在一些事件中加载内容,比如滚动或单击一个标签,上面写着“加载更多”。一次加载所有记录不是一个好主意。
url: "Views/pfolioresult.php?q="+str+"&page=0&limit=10",
然后,在查询中可以使用page
和limit
,如下所示
$sql = "SELECT ....";
$limit = $_POST['page'] * $_POST['limit']; // get offset records
$sql .= " limit {$limit}, {$_POST['limit']}";
当加载更多的记录时,比如页面2,你可以在ajax url中设置page=1
。
发布于 2014-02-13 07:06:11
如果您必须以这种方式显示,您应该拆分响应并逐个显示或逐批显示,但这将导致混淆。这不是个好主意。最好使用jscroll或无限滚动这样的插件与分页系统一起使用,这将减少响应时间,这样应用程序将工作得更快,你可以实现你想要的。
https://stackoverflow.com/questions/21747092
复制