2010-01-27 137 views
7

我有一个包含约20-50个动态图像(从非静态源提供的图像)的网页。这些图像通过基于请求URL的servlet提供。这会导致每个图像生成一个请求,导致性能衰退。为动态图像生成CSS精灵

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

有什么建议吗?

+0

什么服务器端语言? – 2010-01-27 16:15:32

+0

Java - 抱歉,应该强调servlet。 – Zecrates 2010-01-28 07:38:05

+0

嗨@Zecrates我正面临同样的问题,请你详细说明你是如何解决这个问题的。谢谢。 – Aftab 2015-12-09 05:28:24

回答

3

您可以检查并尝试使用jawr(https://jawr.dev.java.net/)库来生成/修改(还压缩,合并)servlet上的css文件。它可以动态改变背景图像。 您可以安排用于切换css文件以更换皮肤的软件包。

正面:您还可以管理和安排您的.js文件!

+0

有一个快速的样子,它似乎能够做我想要的,谢谢! – Zecrates 2010-01-28 07:38:52

+0

https://jawr.dev.java.net/链接已损坏 – Mollo 2016-01-12 22:24:51

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。

0

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

我现在正在考虑为C#创建动态图像并将其发送给客户端时增加复杂性的交易,并减少了个人图像访问。

一个值得分析的折衷。