我正在使用 LOAD DATA INFILE
导入 11M 记录,然后脚本继续执行其他操作。导入需要 10 分钟,浏览器已放弃(3 分钟后),我看不到后续操作的进度。有没有办法在这个耗时的查询运行时定期向浏览器输出一些东西。 Phpmyadmin 似乎做了这样的事情,浏览器不会超时。
最佳答案
查看 flush()(http://php.net/manual/en/function.flush.php)或 ob_flush()(http://www.php.net/manual/en/function.ob-flush.php)。
基本上,您通常会生成输出(在本例中为当前状态),然后强制服务器输出当前缓冲区中的内容。
如果您的操作需要 10 分钟,您可能需要使用 set_time_limit($seconds) ( http://php.net/manual/en/function.set-time-limit.php ),请注意不要将它设置得太大,以防页面挂起。
如果你想每 10%(1 分钟)输出一次状态,你可以在每次更新刷新后将超时重置为 2 分钟。这样,如果超出预期的运行时间,您的脚本就会超时。
关于php - 长时间运行时定期输出到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8264324/