困惑的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实现后,来个总结交流什么的。 继续高分求助。 正则表达式匹配问题 请教一个数组交集的思路 PHP中如何调用 .mo语言库 怎样使用缓存来储存一些并不经常变动的数据? print echo什么区别? 要让apache2支持php,在httpd.conf文件后加什么??? 在线求助!解决给分 下面这个赋值是什么意思? 微信公众平台登录!!为什么获取用户信息的时候access_token为空? 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下載和執行。