加快每次网页浏览中30-40个动态加载图像的加载速度

时间:2009-03-30 08:57:17

标签: ajax performance xmlhttprequest

我有一个拥有大量流量的社交社区。在网站布局的右栏中,我们得到了一个“在线列表”,可以打印出40x40像素的朋友缩略图,您所在地区的人等等。总共30-40张图片。

在加载右列之前,它会在加载所有这些图像时挂起。我需要一个兼容IE6的更快的解决方案。

是否可以在页面加载后通过ajax加载图像,使用某种内联gfx(IE6支持)或其他方法?

5 个答案:

答案 0 :(得分:1)

通过AJAX加载图像将起作用。例如,您可以使用jQuery轻松完成。为要显示的每个图像定义一个div。当最初显示页面时,也许您可​​以显示“正在加载...”图像或类似的图像来代替实际图像。

jQuery有很多选项。有一个lazy loading插件,您可以preload images,并且可以在显示图片时轻松添加效果。

答案 1 :(得分:0)

使此页面区域在后台异步加载。

答案 2 :(得分:0)

是的,您可以推迟加载图片,但您可能希望在<noscript>标记中包含常规HTML版本,以便更简单的用户代理/蜘蛛可以看到您的网页。

另一种技术是从多个子域加载图像,因为浏览器通常只打开与每个域的少量连接。例如,如果您的站点位于foo.com上,请从a.foo.com,b.foo.com和c.foo.com加载静态图像

答案 3 :(得分:0)

我还会考虑不显示30-40张动态图片,因为服务器和客户端都无法有效地缓存这些图片。

答案 4 :(得分:0)

如果您的问题与在运行时调整服务器端图像大小有关, 您可能希望在调整大小一次后存储缩略图,然后 仅在以下负载上提供缩略图。

对于大多数脚本来说,40张小图片应该没问题。获得40张全尺寸图片 调整大小可能会带来很多负担。

伪代码:

  1. 用户请求图片
  2. 检查该图像的缩略图是否存在
  3. 如果没有,请创建缩略图并提供服务
  4. 如果是, 提供缩略图
  5. 您可以让服务器通过使用apache重写来缓存这些图像,以将某些.jpg | .png | etc请求路由到您的大小调整脚本。其他服务器无疑具有类似的功能。