加载内容并逐个显示php ajax

时间:2014-02-13 06:45:58

标签: php jquery ajax

<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个数据。此代码在加载后立即显示所有数据。如何根据加载时间逐个显示数据。这意味着当一个项目被加载然后显示它,其他项目连续显示。

3 个答案:

答案 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",

然后在您的查询中,您可以使用pagelimit之类的

$sql = "SELECT ....";

$limit = $_POST['page'] * $_POST['limit']; // get offset records

$sql .= " limit {$limit}, {$_POST['limit']}";

当加载更多记录(如第2页)时,您可以在ajax网址中设置page=1

答案 2 :(得分:0)

如果必须以这种方式显示,则应拆分响应并逐个显示或逐批显示,但这会导致混淆。这不是一个好主意。最好使用jscroll或inifinite滚动等插件与分页系统,这将减少响应时间,这样应用程序将更快地工作,你可以实现你想要的。