Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Php 试图加载图像时浏览器超时_Php_Performance_Image_Browser_Kohana - Fatal编程技术网

Php 试图加载图像时浏览器超时

Php 试图加载图像时浏览器超时,php,performance,image,browser,kohana,Php,Performance,Image,Browser,Kohana,我在一个webapp上有一个页面,它有大约13个由我的应用程序生成的图像,这些图像是用Kohana PHP框架编写的。这些图像实际上是图形。它们是缓存的,因此只生成一次,但当用户第一次访问页面时,所有图像都必须生成,大约一半的图像不会加载到浏览器中。一旦页面被请求并且图像被缓存,它们都会成功加载 做一些特别的测试,如果我在浏览器中加载一个单独的图像,需要450-700毫秒才能加载一个空缓存,我使用谷歌浏览器的资源跟踪功能检查了这个。作为参考,加载缓存图像大约需要90-150毫秒 即使映像缓存是空

我在一个webapp上有一个页面,它有大约13个由我的应用程序生成的图像,这些图像是用Kohana PHP框架编写的。这些图像实际上是图形。它们是缓存的,因此只生成一次,但当用户第一次访问页面时,所有图像都必须生成,大约一半的图像不会加载到浏览器中。一旦页面被请求并且图像被缓存,它们都会成功加载

做一些特别的测试,如果我在浏览器中加载一个单独的图像,需要450-700毫秒才能加载一个空缓存,我使用谷歌浏览器的资源跟踪功能检查了这个。作为参考,加载缓存图像大约需要90-150毫秒

即使映像缓存是空的,我也会缓存数据和一些应用程序的启动任务,这样在第一次请求之后,就不需要提取任何数据

我的问题是:

为什么图像无法加载?看起来浏览器只是决定在某个时间点后不下载图像,而不是等待它们全部完成加载。 我能做些什么让它们在第一次加载时使用空缓存? 显然,一个选择是减少加载时间,我可以通过分析应用程序来找出如何做到这一点,但还有其他选择吗? 正如我提到的,该应用程序位于Kohana PHP框架中,并且在Apache上运行。顺便说一句,我现在已经解决了这个问题,只要数据来自一个批处理过程,就立即获取页面,这样用户看到图像时,图像总是被缓存。不过,这对我来说是一个棘手的解决方案,我很好奇到底发生了什么

编辑:有评论者要求查看请求的标题:

请求

请求URL: 请求方法:获取 状态代码:200 OK

请求头

缓存控制:最大年龄=0 推荐人: 用户代理:Mozilla/5.0 Macintosh;U英特尔Mac OS X 10_5_8;en US AppleWebKit/533.4 KHTML,如Gecko Chrome/5.0.375.55 Safari/533.4

响应头

缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0 连接:保持活力 内容长度:6354 内容类型:图像/png 日期:2010年5月26日星期三格林威治时间21:10:45 到期时间:1981年11月19日星期四格林威治标准时间08:52:00 保持活动状态:超时=15,最大=94 Pragma:没有缓存 服务器:Apache X-Powered-By:PHP/5.3.1

缓存图像后,响应头中的唯一区别是:

内容长度:1129 保持活动状态:超时=15,最大=96


我正在研究内容长度的奇怪差异,因为它应该是完全相同的内容。我意识到这在让浏览器缓存图像方面可能没有得到优化,但一旦生成一次图像,整个页面加载(包括下载图像、脚本等)大约需要1-2秒。如果没有缓存在服务器上的图像,页面加载需要20-30秒,并且有几个图像根本无法加载。

在注意到文件大小的差异后,我意识到我没有正确设置Kohana的profiler,因此它在图像末尾输出了一组配置文件数据。每个请求都不是很多,但总的来说,它带来了很大的不同。现在所有图像都已加载。

请放置图像响应标题,带缓存和不带缓存。我已按要求添加标题。感谢您提供的任何见解。