Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用Apache和PHP将gzip分块_Php_.htaccess_Gzip_Deflate_Chunked - Fatal编程技术网

有没有办法用Apache和PHP将gzip分块

有没有办法用Apache和PHP将gzip分块,php,.htaccess,gzip,deflate,chunked,Php,.htaccess,Gzip,Deflate,Chunked,我在一个网站上有一个web应用程序,它需要一段时间(~10秒)来完成页面底部附近的一部分-它已经尽可能地优化了,缓存不是一个选项 我们通过.htaccess指令SetOutputFilter DEFLATE在服务器上启用了压缩。问题是,这会导致整个页面在开始向用户输出之前一直保持到完成,这不是最佳的,因为用户在页面完成之前什么都看不到 我还通过phpob_start(“ob_gzhandler”)尝试了它方法 目前,我的.htaccess中有一个,限制压缩此特定脚本 基本上,我的问题是——有没有

我在一个网站上有一个web应用程序,它需要一段时间(~10秒)来完成页面底部附近的一部分-它已经尽可能地优化了,缓存不是一个选项

我们通过.htaccess指令
SetOutputFilter DEFLATE
在服务器上启用了压缩。问题是,这会导致整个页面在开始向用户输出之前一直保持到完成,这不是最佳的,因为用户在页面完成之前什么都看不到

我还通过php
ob_start(“ob_gzhandler”)尝试了它方法

目前,我的.htaccess中有一个
,限制压缩此特定脚本


基本上,我的问题是——有没有一种方法可以说chunk gzip或deflate,这样用户就可以把它分成几部分,这样他们就可以看到页面已经开始加载了?

我会说:没有。我想现在有一种方法是由HTTP提供的。

如果您使用的是
ob\u start(“ob\u gzhandler”)
方法,您可以这样做-您需要查看和函数

一些示例代码-尝试使用curl加载,或者使用fiddler检查实际的http响应

<?php
ob_start('ob_gzhandler');
print "chunk 1";
ob_flush();
flush();
sleep(2);
print "chunk 2";
ob_end_flush();

如果页面的加载时间那么长,那么处理它的创造性方法是使用一个非常快速的加载页面,并通过ajax调用在页面上加载那么长的内容。我们这样做的网页,拉详细的会员使用统计。。。其他网站,比如Adsense,在他们的报告页面上也这样做。

我强烈希望避免对JavaScript的依赖——虽然iFrame可能是可行的。好吧,我发现这很有希望,但经过一点测试,它似乎不起作用。我添加了echo str_repeat('',1000000);在ob_flush for good measure之前,确保将其刷新到apache时,apache会将其刷新到浏览器。我得到了相同的结果,浏览器、wget和curl