我对PHP缓冲如何工作有点困惑.
假设你在PHP.ini中有一个PHP页面foo.PHP和output_buffering = 4096,Apache收到foo.PHP的get请求. foo.PHP开始执行,一旦准备好4096个字节,它们就会被发送到Apache. Apache开始向客户端发送这4096个字节.
这是我不明白的:当有一些讨厌的跟踪器标注,javascript或发送到浏览器的图像时会发生什么.浏览器被挂断了,并且暂时没有回到Apache,并坚持下去. Apache没有发布MySQL线程,它正在显示为“睡眠者”.这是正确的还是我完全不在这里?
解决方法:
你完全离开了基地:)
what happens when there’s a some nasty tracker callout, a
javascript or an image that was sent to the browser
这不会影响服务器端的任何内容.
每个通过PHP运行的请求都会
>编译所需的PHP文件以进行选择代码(除非缓存是一个)
>执行PHP选择代码
>将PHP opt-code的字符串结果返回给浏览器
您正在谈论的缓冲发生在步骤2和3之间.因此,让我们采取您的方案.
>请求提供PHP URL
>编码选择代码
> PHP执行开始并开始返回html字符串
>创建一个缓慢加载img标记的字符串
>> PHP继续向apache提供输出>为图像(或javascript代码,或其他等)制作单独的http请求
这是单独的请求,在这里无能为力.所有PHP和Apache正在做的是将HTML返回给浏览器.此HTML可能会生成一个img或javasript标记,该标记将回调到同一个Web服务器,但这些请求将与为现有页面生成HTML的请求分开处理.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。