8

我有一个网页,其中包含大约 20 - 50 个动态图像(从非静态源提供的图像)。这些图像是通过基于请求 URL 的 servlet 提供的。这会导致为每个图像生成一个请求,从而导致性能下降。

如果这些图像是静态的,我会创建一个 CSS 精灵并将 50 个请求替换为一个。由于它们是动态的,这当然不是那么容易。我正在寻找一种可以用来在运行时将这些图像聚合成单个精灵的工具/库/方法。幸运的是,图像大小是恒定的,并且对所有人来说都是一样的,这应该会让这变得更容易。

有什么建议么?

4

3 回答 3

3

您可以检查并尝试使用 jawr ( https://jawr.dev.java.net/ ) 库在 servlet 上生成/修改(也压缩、合并)css 文件。它具有动态更改背景图像的选项。您可以安排用于切换 css 文件以更改皮肤的捆绑包。

优点:您也可以管理和安排您的 .js 文件!

于 2010-01-27T10:24:02.203 回答
2

您可以通过调用系统命令行来使用免费的ImageMagick库附加图像,这样您用 Java 编写的代码就更少了,而且速度更快。

要水平附加,请使用以下命令:

convert image1.gif image2.gif image3.gif +append result.gif

要垂直追加,请使用以下命令:

convert image1.gif image2.gif image3.gif -append result.gif

欲了解更多信息:http ://www.imagemagick.org/Usage/layers/#append

因此,使用 CSS,您可以使用具有简单偏移量的单个图像显示精灵(您可以使用 CSS“背景”属性加载图像并设置要显示的单个精灵的偏移量)。如果您只做简单的事情,则不需要 JavaScript。

于 2010-01-27T15:34:35.567 回答
0

服务器上的处理开销值得吗?

我现在正在为 C# 考虑这个问题,用增加的复杂性来创建动态图像并将它们发送给客户端,同时减少单个图像访问。

值得进行一些分析的权衡。

于 2012-10-12T09:20:07.650 回答