chiefloveyou 发表于 2012-2-25 22:10:52

CI 的Hook疑问,关于"post system"

CI 的Hook疑问, 其中有一个Hook是"post system"执行的, 从代码上看,是output之后执行的。

问题,1)服务器实在"post system"的Hook 执行完毕之后 才开始给browser发送页面的么?

         2)PHP有没有办法在页面发送完毕之后(指http response已经发往客户端),继续执行一些后续的代码,用来进行质量控制和业务统计呢?

我之所以有这样的想法,是对于用户而言页面下载的越快越好(从发出请求到页面下载完毕), 所以我们应该集中时间处理用户需要的内容, 而关于质量控制和业务统计是对用户透明的, 我不想这些处理花费的时间影响用户的体验(页面响应速度)




Hex 发表于 2012-2-26 00:49:44

PHP可以在输出之后再执行一些东西,也就是 flush 输出 buffer 后继续执行代码。

迷糊 发表于 2012-2-26 10:53:21

我认为最简单直接的办法是用Ajax.在页面加载完后执行其他操作

chiefloveyou 发表于 2012-2-26 11:00:12

谢谢Hex
刚才测了一下, post_system的hook会延缓输出response的时间。
我再试试flush.

chiefloveyou 发表于 2012-2-26 12:38:53

试了一下flush,貌似可以。
但是在php执行完毕之前, 浏览器一直处于下载状态。(虽然页面已经完全下载完毕)
页: [1]
查看完整版本: CI 的Hook疑问,关于"post system"