代码之家  ›  专栏  ›  技术社区  ›  davidtbernal

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

  •  0
  • davidtbernal  · 技术社区  · 16 年前

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

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

    1. 为什么图像无法加载?似乎浏览器只是决定在某个时间点之后不下载图像,而不是等待它们全部完成加载。
    2. 我该怎么做才能让它们第一次加载,并且缓存是空的?

    正如我提到的,这个应用程序是在Kohana PHP框架中运行的,它运行在Apache上。另外,我现在已经解决了这个问题,只要数据可用(它来自一个批处理过程),就立即获取页面,这样用户看到图像时,图像总是被缓存起来。不过,这对我来说是一个笨拙的解决方案,我很好奇到底发生了什么。


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

    请求URL: http://domain.com/charts/chart_name/1234/
    请求方法:GET

    请求标头

    缓存控制:最大年龄=0
    推荐人: http://domain.com/home/chart_page

    响应标头

    缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0

    内容长度:6354

    日期:2010年5月26日星期三格林尼治标准时间21:10:45
    到期时间:1981年11月19日星期四08:52:00 GMT

    Pragma:没有缓存
    服务器:Apache

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


    保持Alive:timeout=15,最大值=96

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

    1 回复  |  直到 16 年前
        1
  •  0
  •   davidtbernal    16 年前

    在注意到文件大小的差异后,我意识到我把Kohana的profiler设置得不正确,所以它在图像的末尾输出了一堆profile数据。每个请求不多,但总的来说,它有相当大的不同。图像现在都加载了。

    推荐文章