igaojie
发表于 2012-7-6 16:06:51
楼主的学习精神值得我们学习啊!
princehaku
发表于 2012-7-12 09:48:38
Bigpipe不是依赖客户端js来实现分块加载的么?
这个不能算bigpipe 这个只能叫flushOutput
而且flush有几个东西楼主貌似没注意到
1. 就算你flush了输出,浏览器还有一层缓冲,也就是说在没有收到这么多数据前依然不展现给客户端,ff是8k,ie是2k....就是说比如这段代码将无法有逐步显示的效果
<?php
ob_start();
ob_end_clean();
for ($i=0; $i<10; $i++) {
echo $i;
sleep(1);
ob_flush();
flush();
}
需要增加缓冲头
<?php
ob_start();
ob_end_clean();
echo str_pad('', 4096);
for ($i=0; $i<10; $i++) {
echo $i;
sleep(1);
ob_flush();
flush();
}
可以参见下
http://q.cnblogs.com/q/30267/
http://code.google.com/p/chromium/issues/detail?id=31410
方达
发表于 2012-7-12 16:13:16
princehaku 发表于 2012-7-12 09:48 static/image/common/back.gif
Bigpipe不是依赖客户端js来实现分块加载的么?
这个不能算bigpipe 这个只能叫flushOutput
对,你提方案,在原帖的最后的第二个方案里有提到
另外,bigpipe是依赖后续json的,提出这个问题主要是当初连flush都成问题了,不能chunked输出,没有了实现bigpipe的基础。
sunjingping
发表于 2012-7-17 19:07:46
{:soso_e179:} 长见识了
ysb
发表于 2012-7-18 23:53:53
我遇到个类似的问题,当A页面sleep 10s时,请求B页面,这时候B页面阻塞在controller的构造函数调用之前,等A页面返回后,B页面才一起返回。我没有用flush,为什么会这样呢?
princehaku
发表于 2012-7-19 10:13:17
ysb 发表于 2012-7-18 23:53 static/image/common/back.gif
我遇到个类似的问题,当A页面sleep 10s时,请求B页面,这时候B页面阻塞在controller的构造函数调用之前,等 ...
大部分浏览器有一个限制,同域名并发限制
所以很多cdn都有前缀
比如a1.taobaocdn.neta2.taobaocdn.net
不知道你的和这个有关系部
ysb
发表于 2012-7-19 10:31:22
princehaku 发表于 2012-7-19 10:13 static/image/common/back.gif
大部分浏览器有一个限制,同域名并发限制
所以很多cdn都有前缀
比如a1.taobaocdn.neta2.taobaocdn.net
不是这个原因,请求数只有两个,而且请求是发出去了。
初步定为到问题是 session锁的原因。
princehaku
发表于 2012-7-19 11:53:18
ysb 发表于 2012-7-19 10:31 static/image/common/back.gif
不是这个原因,请求数只有两个,而且请求是发出去了。
初步定为到问题是 session锁的原因。 ...
噢噢..