处理ajax页面时,我可以输出/刷新数据到屏幕吗?

时间:2010-03-27 13:51:26

标签: php ajax

我需要在我的页面上显示从表中提取的记录列表。 Ajax工作正常(我查询数据库并将所有数据放在主页上)但如果我有很多记录(比如说500+),它会挂起,直到数据完全加载,然后它将被发送回页面并正确显示。

我希望能够在获取页面时显示页面上的记录,而不是被迫等到完成。我正在尝试flush();在远程(ajax)页面内,但它仍然等待,直到加载完整数据。

这是我目前在ajax页面中的内容:

一开始:

@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
 ob_implicit_flush(1);

然后每当我有一个回音电话:

ob_flush();

现在如果我单独加载ajax页面......它会在从数据库中读取记录时列出记录。但是,如果我通过Ajax调用同一页面,它将挂起并立即发送所有数据。

有什么想法吗?

这是我用来获取ajax内容的函数('id'是目标,'url'指的是运行数据库查询以列出记录的ajax页面):

function ajax(id,url) {
 xmlhttp=new XMLHttpRequest();
 xmlhttp.open("GET",url,false);
 xmlhttp.send(null);
 document.getElementById(id).innerHTML = parseScript(xmlhttp.responseText);
}

1 个答案:

答案 0 :(得分:3)

基本上,您需要创建一个带有服务器端代码的循环,该循环输出Javascript函数调用以更新结果。这些请求必须在并行HTTP连接中进行。

此处提供了更多详细信息:http://ajaxpatterns.org/HTTP_Streaming