<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个数据。此代码在加载后立即显示所有数据。如何根据加载时间逐个显示数据。这意味着当一个项目被加载然后显示它,其他项目连续显示。
答案 0 :(得分:0)
关于如何做到这一点的一些想法:
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
答案 1 :(得分:0)
您应该使用分页,然后在某些事件上加载内容,例如滚动或点击标题“加载更多”。一次加载所有记录不是一个好主意。
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网址中设置page=1
。
答案 2 :(得分:0)
如果必须以这种方式显示,则应拆分响应并逐个显示或逐批显示,但这会导致混淆。这不是一个好主意。最好使用jscroll或inifinite滚动等插件与分页系统,这将减少响应时间,这样应用程序将更快地工作,你可以实现你想要的。