为什么Bitdefender阻止刷新数据(PHP)?
此代码在每次循环到浏览器后打印结果。适用于my host和localhost。但在我的电脑上安装bitdefender total security 2015后无法工作10秒后立即打印所有文本 我在bitdefender中禁用了防病毒和防火墙,但未解决。 如何解决这个问题? 演示: progress.php为什么Bitdefender阻止刷新数据(PHP)?,php,flush,Php,Flush,此代码在每次循环到浏览器后打印结果。适用于my host和localhost。但在我的电脑上安装bitdefender total security 2015后无法工作10秒后立即打印所有文本 我在bitdefender中禁用了防病毒和防火墙,但未解决。 如何解决这个问题? 演示: progress.php <?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); functi
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
function send_message($id, $message, $progress) {
$d = array('message' => $message , 'progress' => $progress);
echo "id: $id" . PHP_EOL;
echo "data: " . json_encode($d) . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
}
//LONG RUNNING TASK
for($i = 1; $i <= 10; $i++) {
send_message($i, 'on iteration ' . $i . ' of 10' , $i*10);
sleep(1);
}
send_message('CLOSE', 'Process complete');
问题出在比特后卫身上。他们现在解决了。你确定是BitDefender吗?如果你卸载它会发生什么?我知道大多数时候冲洗不起作用。它被刷新并发送到客户端并不意味着它会立即显示。事实上,你的url给了我同样的问题,我不再有BitDefender了。我确信BitDefender会阻止实时打印到浏览器。unistall后,代码工作正常。在浏览器中打印每秒钟的结果后,更新的演示url即可工作。你改变了什么?是的,我更新了它。我的错误是我还安装了AVG,卡巴斯基和eset防病毒测试。这些防病毒代码可以正常工作。在修复错误后,BitDefender仍然不能工作?您是否在BitDefender中启用了某些Internet扫描功能?在这种情况下,BitDefender可能会对页面进行缓冲,直到页面完全加载,以便可以对其进行扫描。
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
function send_message($id, $message, $progress) {
$d = array('message' => $message , 'progress' => $progress);
echo "id: $id" . PHP_EOL;
echo "data: " . json_encode($d) . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
}
//LONG RUNNING TASK
for($i = 1; $i <= 10; $i++) {
send_message($i, 'on iteration ' . $i . ' of 10' , $i*10);
sleep(1);
}
send_message('CLOSE', 'Process complete');