困惑的ob_start回调,欢迎期望拿高分的进来挑战一下 本帖最后由 seai 于 2011-08-07 19:51:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 gz压缩输出一般用apache的模块来压 你的思路是另辟蹊径,但在这个问题上,显然毫无用处。我的目的:以间隔的方式立即输出所要的内容。且是gzip压缩格式的。当我启用apache压缩不能达到此目的时,才转而人工压缩的。 apache压缩的问题,同上面第2种情形。一旦启用,则不能间隔立即输出。一旦关闭又无压缩。这是一个矛盾,不论你信不信,它就是发生了,反正我是信了。 为什么要一段一段输出?如果header定义了gz,就不可能再输出非压缩数据 apache 里面,好像有直接压缩模块,不需要php设置的 等你理解这个需求的时候,你就是facebook那里面的大牛了(这是facebook的pipe技术原理)继续研究 你的需求可以理解,不过翻了半天internet,没找到实现办法,虽然没有在ref文档里找到原话, 但是网上的例子,在在transfer-coding:chunked和Content-Encoding: gzip共存的情况下,似乎都是先gzip整个页面再chunk的你要的先chunk再gzip一个个chunk的方式,也许http1.1里还不支持。 不清楚你说的“facebook的pipe技术”,有网址可以参考吗? 经测试,你的第三段代码依然是整体一并显示的只有去掉 ob_start('my_no_ob_gzhandler'); 才逐次显示即便是能逐次显示,也只在有限的环境中才能实现。比如在我的三台服务器中,只用一台上能逐次显示对于你能看到逐次显示,可能就是特例了至于 gzip 是不能逐次显示的原因,我想也是很简单的:既然打包了,当然要等解包完成才能构造输出结果毕竟 gzip 不是流协议,你的服务器也不是流服务器 继续寻apache、php源码高手一起分析原因,期待能解决问题。 你明白什么bigpipe么?如果不明白的话,仔细看下下面的内容使用Big pipe提升浏览速度讓 Facebook 速度飆升的秘密武器:Big Pipe 網頁流水線技術这不是web server和php的配合,而是javascript和php的配合,也就是串行变并发----------------------引用原文的一段话-------------------------------雖然大多數階段BigPipe只能操作一次Pagelet,但有時多個Pagelets的CSS和JavaScript下載卻可以同時運作,這類似於超標量微處理器。BigPipe另一個重要區別是,我們實現了從並行編程引入的"障礙"概念,所有的Pagelets要完成一個特定階段,如多個Pagelet顯示區,它們都可以進行進一步JavaScript下載和執行。 你理解的还很浅显,他的东西已经大部分实现。目前只遇到gzip与chunked同时应用的冲突。 给大家预报个喜:所有原理都得到验证。现在万事俱备,只欠东风。写一个自己所需的gzip实现函数。一切都搞定。有兴趣的可继续关注,我会在完成gzip实现后,来个总结交流什么的。 自动换行 xml转换成数组的问题 phpmailer问题 怎么让php生成唯一数字ID的重复度降低? php程序不懂 关于复选框传值问题 如何截取一定长度的字符串? 请求帮助;我还需要怎么配置才能执行PHP程序? Oracle clob 字段处理问题 php如何实现复选框选中的批量下载并按照标题名字来保存成文件名。 PHP开发apache虚拟主机配置你知道吗? PHP环境如何搭建?
虽然没有在ref文档里找到原话, 但是网上的例子,在
在transfer-coding:chunked和Content-Encoding: gzip共存的情况下,
似乎都是先gzip整个页面再chunk的你要的先chunk再gzip一个个chunk的方式,也许http1.1里还不支持。
只有去掉 ob_start('my_no_ob_gzhandler'); 才逐次显示即便是能逐次显示,也只在有限的环境中才能实现。比如在我的三台服务器中,只用一台上能逐次显示对于你能看到逐次显示,可能就是特例了
至于 gzip 是不能逐次显示的原因,我想也是很简单的:既然打包了,当然要等解包完成才能构造输出结果
毕竟 gzip 不是流协议,你的服务器也不是流服务器
讓 Facebook 速度飆升的秘密武器:Big Pipe 網頁流水線技術这不是web server和php的配合,而是javascript和php的配合,也就是串行变并发----------------------引用原文的一段话-------------------------------
雖然大多數階段BigPipe只能操作一次Pagelet,但有時多個Pagelets的CSS和JavaScript下載卻可以同時運作,這類似於超標量微處理器。BigPipe另一個重要區別是,我們實現了從並行編程引入的"障礙"概念,所有的Pagelets要完成一個特定階段,如多個Pagelet顯示區,它們都可以進行進一步JavaScript下載和執行。