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

标签 php ajax

我需要在我的页面上显示从表中提取的记录列表。 Ajax 工作正常(我查询数据库并将所有数据放入主页上的 a 中),但如果我有大量记录(比如 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);

然后每当我有 echo 调用时:

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);
}

最佳答案

本质上,您需要使用服务器端代码创建一个循环,输出 Javascript 函数调用来更新结果。这些请求必须在并行 HTTP 连接中发出。

更多详细信息请参见:http://ajaxpatterns.org/HTTP_Streaming

关于php - 我可以在处理ajax页面时将数据输出/刷新到屏幕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2529495/

相关文章:

PHP 正则表达式 - 捕获两个字符串之间的内容(多个结果)

php - 如何设置 PHP MongoDB 自动故障转移

PHP 木马

javascript - 页面刷新后重新加载ajax检索数据

Javascript/Html5 从 url 下载 zip

javascript - Ajax响应日期时间选择器点击事件未绑定(bind)

php - Laravel Nova BelongsTo 在关系方法名称和外键前缀不同时不起作用

javascript - XMLHttpRequest() 在函数中返回响应

jquery - 快速 jquery 图像幻灯片放映

php - 如何在mysql中存储动态生成的复选框的详细信息