0

我有一个以在线聊天应用程序为中心的网站,每个用户最多可以有数百个联系人。每个联系人都有自己的个人资料图像。我想这样做,以便在名称旁边加载联系人的个人资料图像。然而,让用户每次加载网站时下载 100 多张图片似乎很费力(研究表明,多达 40% 的用户不使用缓存)。每个图像的尺寸约为 60x60 像素。

当我在 google 上搜索或登录 facebook 时,几乎是瞬间提供了数十张图片。除了拥有快速的服务器和良好的连接之外,向用户提供如此多图像的最佳方法是什么?

我想出的可能方法是:

  • 将每个用户的个人资料图像存储在数据库中,在 php 文件中构建一个图像,而不是让用户下载该图像,然后使用 css 显示每个个人资料图像。但是,这在服务器上似乎非常激烈,并且多次引用如此大的文件可能会对用户的浏览器造成影响。
  • 使用 nginx 而不是 apache 来服务图像(nginx 通常更适合服务于诸如此类的静态内容)。但是,这似乎更像是对解决方案的优化,而不是解决方案本身。

我也知道数据可以通过持久的 http 连接传递,因此不必向服务器发出多个请求以获取多个文件。但是,通过一个持久连接可以传递多少文件。这种持久性模型是否意味着仅将图像作为单独的文件加载不一定是一个坏主意?

任何关于相关事务的个人经验的建议、解决方案和/或注释将不胜感激。可扩展性在这里非常重要,以及跨浏览器支持(IE7+、Opera、Firefox、Chrome、Safari)

编辑:我没有使用 JQUERY。

4

1 回答 1

0

这是一个 jquery 插件,它延迟加载图像,直到真正需要它们(即,只加载“首屏”图像。)

http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin

另一种方法可能是使用 Flash 仅显示图像。优点是 Flash 是您拥有的更强大的本地缓存

于 2010-10-25T01:52:52.597 回答