ajax从服务器检索大量数据

时间:2014-08-23 05:45:58

标签: javascript ajax

我的ajax代码是

function senddata()
{
    var ajaxRequest;  // The variable that makes Ajax possible!

    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function()
    {
        if(ajaxRequest.readyState == 4)
        {
            document.getElementById("showdata").innerHTML=ajaxRequest.responseText;
        }
    }

    ajaxRequest.open("GET", Handler.php?key=" + value, true);
    ajaxRequest.send(null); 
}

我有大量的数据通过ajax检索。现在,当我调用此函数时,显示数据需要很长时间。我想要的是,当数据被重新检索时,它应该显示在屏幕上。无需仅在获取所有内容时显示整个检索到的数据,而是在获取数据时显示数据。

1 个答案:

答案 0 :(得分:1)

您希望以与实施分页系统相同的思维方式来处理此问题。

我无法看到您的Handler.php代码,因此我们需要编辑内容,这可能会让事情变得困难。

  1. Handler.php接受limitoffsetpage查询var(s)
  2. 在PHP中添加适当的代码来处理(并且不提供任何代码,不要只发送所有内容!默认limit10offset到{{ 1}}。)
  3. 将您的ajax请求功能化并使其成为分页:

    0
  4. 当没有更多数据时,请确保function getdata(limit, offset) { limit = limit || 10; offset = offset || 0; var ajaxRequest; // The variable that makes Ajax possible! // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState == 4) { document.getElementById("showdata").innerHTML=ajaxRequest.responseText; // make Handler.php send 'end' when no results have been returned if (ajaxRequest.responseText && ajaxRequest.responseText != 'end') { getdata(limit, offset + limit); } } } ajaxRequest.open("GET", Handler.php?key=" + value + '&limit=' + limit + '&offset=' + offset, true); ajaxRequest.send(null); } getData(); 发送Handler.php