图标存储和检索 | 最佳实践

4

我想让我的网络应用程序更快。每个页面都有20到200个从网络上获取的图像,实际上它们是网站图标。下面的代码行对我很有效。

var google_favicon = 'http://www.google.com/s2/favicons?domain=' + domain; 

当然,我可以下载它们并放到我的服务器上。因为我不知道哪种方法是最佳实践,所以我只是从网上获取。

然而,我想以最佳的方式完成,对我来说最好的方式是最快的方式。是否有答案或这取决于您的托管提供商的质量等因素?

谢谢


其他需要考虑的因素包括图片可能经常更改的频率、文件大小、目标受众。除了在服务器上缓存它们,它们也可以被缓存在客户端上。我个人认为,如果它们是网站图标,我怀疑它们不会经常更改,并且它们的文件大小很小,因此将它们放在您的服务器上。 - Green Day
3个回答

2
这取决于提供内容的网站的速度/可靠性与您的服务器的速度。许多高流量网站使用内容交付网络(CDN,例如Akamai)来提供其静态内容,因为CDN在许多地区都有服务器,并且通常可以更快地将内容传递给用户。
我猜这些favicon由许多不同的提供商托管,这意味着您的站点“正常运行时间”(由所有内容正确加载定义)将是托管图像的所有站点的正常运行时间的最低公共分母。
您还需要考虑到,由于您无法控制托管这些图像的站点,它们随时可能移动/删除,然后它们将无法正常工作。
您的网站上的图像更改频率如何?如果不经常更改并且您关注正常运行时间/性能,则应尝试从您控制的主机(无论是您自己的计算机还是其他主机)中全部提供服务。

我可能误解了问题,并给出了一个更一般的关于托管静态内容的答案。由于这些是网站图标(而不是随机图片),并且它们由Google托管,所以让Google提供图标可能不是一个坏主意。 - f1sherman

2
我不确定您具体使用的方式,但如果您想优化您的网站,至少要考虑将它们全部放入单个图像文件中(就像精灵一样存储),并通过CSS拉出单个图像。这样,客户端只需发出一次所有网站图标的请求,而不是200多次以上的请求。

1
对于用户来说,图像是托管在您的服务器上还是其他地方并不重要。当浏览器看到<img src=...>时,它会发出HTTP请求以获取该图像。除非您知道您的托管提供商比图像的原始网络源快得多,否则我认为这不值得麻烦。
特别是考虑到这是谷歌,他们可能比您的网站更容易获得!(地理位置,ISP带宽等)此外,如果网站的favicon更改,您无需担心,只有Google需要关注。

1
我可以构建一个工具,收集所需的网站图标并在服务器上创建一个精灵。我猜这已经被做过了,因为我在谷歌图片搜索中看到了巨大的网站图标表。 - user656925
这是一个非常好的观点。我完全忽视了制作精灵。是的,我认为这肯定会大大提高性能,因为它只需要一个GET请求。 - Jonathon Reinhart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接