我正在尝试使用TYPO3控制器中的ob_flush()
和flush()
,但结果很奇怪。在Web浏览器控制台中,我可以看到每次刷新都不会导致Javascript中的一个响应;服务器上的刷新和javascript中的反应之间没有一对一的对应关系。这是代码:
// PHP
foreach ($ids as $id) {
echo $id;
ob_flush(); // <-- Flush 1, 2, 3, ...
flush();
// more data processing...
}
// Javascript
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
}
else if (xhr.readyState > 2) {
console.log(xhr.responseText); // <-- Can log "123" in one go
}
}
如何强制一个flush
在Javascript中引出一个响应?
是否经常发生刷新,以至于Apache2没有时间做出反应?
修改:在echo
:
echo str_pad('',4096)."\n";