如果这些 PNG 作为 BLOB 存储在数据库中——从你的问题中不清楚——不要这样做。通过 PHP 从数据库提供图像不如让 Web 服务器直接从文件系统提供图像那么有效。如果图像与特定记录相关联,只需在行 ID 之后命名 PNG,这样您就可以在专门用于存储这些图像的目录中找到它。然后 PHP 代码只生成指向磁盘上 PNG 文件的 URL,因此 Web 服务器可以静态发送它们。
我不认为在同一页面内预加载图像会为您购买任何东西。如果有的话,它可能会减慢整个页面加载时间,因为浏览器只能同时检索固定数量的资源,通常是 2-4。在顶部加载图像<body>
意味着页面顶部“首屏”还有其他内容必须等待一些 HTTP 连接插槽释放。最好让图像按自然顺序加载。
预加载在两种情况下有意义:
无论哪种方式,在 的最底部进行预加载<body>
,所以其他所有内容都首先加载。
解决了这两个问题后,在您的站点上运行YSlow 。它最初是作为Firebug的插件开始的,而 Firebug 又是 Firefox 的插件,但后来被移植到除 IE 之外的所有主要浏览器。
YSlow 的美妙之处在于它会自动检测常见的减速,只需在扩展程序处于活动状态时加载页面即可。然后它会给你一个明确的页面评分,这样你就可以判断你什么时候“完成”了优化。如果你低于A,你还没有完成。:) 网站评级为D或更差的情况并不少见,因为 Web 服务器的默认配置是保守的以避免引起问题。修复 YSlow 警告通常很容易,但您必须小心避免创建缓存和其他问题,这就是默认服务器配置不做这些事情的原因。
另一个答案推荐了Google PageSpeed产品。它可以作为 Chrome 和 Firefox 的插件、服务器端 Apache 模块以及 Google 托管的服务使用。我不知道它与 YSlow 相比如何,但它看起来很有趣。
还可以考虑使用浏览器的调试器来获取资源加载时间的瀑布图:
在 Firebug 中,您可以在 Net 选项卡中获得它。
在 Safari 中,您可以通过“开发”菜单访问它,该菜单通常在“首选项”中被禁用。如果需要,将其打开,然后说“开发”>“开始时间线录制”。这将使您进入网络请求工具。您也可以通过 Develop > Show Web Inspector 获得它。
在 Chrome 中,说查看 > 开发人员 > 开发人员工具,然后转到网络选项卡。
IE 有一个非常弱的形式,通过工具 > 开发人员工具 > 探查器。它只是给出了一个数字表,而不是瀑布图,所以信息就在那里,但你不能只是直观地扫描长条来找到最慢的资源。