首页 > 解决方案 > 是否仍然,或者曾经,*实际上*可以“将网页发送到客户端”,然后在 PHP 脚本完成之前继续工作?

问题描述

目前发生这种情况:

  1. 有人请求https://www.example.com/
  2. 我的 PHP 脚本会做一些事情,包括许多 SQL 查询,为每个查询添加条目到数组中。
  3. 我运行我的“刷新数据库日志”函数,该函数循环遍历该数组并将 SQL 查询插入到我的数据库查询日志中。
  4. 脚本完成,因此将所有 HTML 输出发送到客户端。

为了防止客户不得不等待超过必要的时间,我希望这样发生:

  1. 有人请求https://www.example.com/
  2. 我的 PHP 脚本会做一些事情,包括许多 SQL 查询,为每个查询添加条目到数组中。
  3. 该脚本将输出发送到客户端。
  4. 我运行我的“刷新数据库日志”函数,该函数循环遍历该数组并将 SQL 查询插入到我的数据库查询日志中。
  5. 脚本完成,用户不必等待“刷新数据库日志”功能,从用户的角度来看,该功能在页面加载后执行。

我知道PHP 中的各种flush,ob_flush和800 种不同的函数。ob_flush_clean我也知道,用户评论和一般在线建议充满了关于这不再起作用或从未起作用的警告,显然取决于服务器的网络服务器/操作系统。

我能否一劳永逸地得到一个 2020 年的答案,看看这是否有效?而且,如果它确实有效,我应该使用哪个功能来“已经发送网页;就用户而言,我已经完成了”?

标签: phphttpoptimizationwebserverflush

解决方案


推荐阅读