一个大型 php 脚本使用 flush 将生成的 html 的一部分发送到浏览器,同时它正在执行需要 appr 的脚本的较大部分。20 秒。
刷新后正在执行的脚本部分非常大,并且从服务器储备中占用了大量资源(90% cpu)。
5 次页面保持空白(白色),这意味着刷新没有到达发送显示页面正在加载的图像。当程序完成时,页面也保持空白(浏览器指示它仍在加载)并且应该将整个页面发送到浏览器。
显着:当我按下后退按钮时,整个页面会显示(在整个脚本执行后应该已经加载到浏览器中)一秒钟,然后浏览器返回上一页。
所有其他 4 次页面加载良好。php 脚本的输入对于所有 5 次都是相同的。
我的 .htacces 文件中有这些设置:
addhandler x-httpd-php5-cgi .php5
addhandler x-httpd-php5-cgi .php5
addhandler x-httpd-php5-cgi .php5
Header Set Cache-Control "max-age=0, no-store"
这是将生成的代码刷新到浏览器的语句:
print str_pad('',4096)."\n";
ob_flush();
flush();
什么可能导致这个问题?