我有一个包含约20-50个动态图像(从非静态源提供的图像)的网页。这些图像通过基于请求URL的servlet提供。这会导致每个图像生成一个请求,导致性能衰退。为动态图像生成CSS精灵
如果这些图像是静态的,我会创建一个CSS sprite并用一个CSS替代50个请求。因为它们是动态的,所以这当然不容易。我正在寻找一种工具/库/方法,可以在运行时将这些图像聚合成一个精灵。幸运的是,图像大小是不变的,对所有人来说都是一样的,这会让这更容易。
有什么建议吗?
我有一个包含约20-50个动态图像(从非静态源提供的图像)的网页。这些图像通过基于请求URL的servlet提供。这会导致每个图像生成一个请求,导致性能衰退。为动态图像生成CSS精灵
如果这些图像是静态的,我会创建一个CSS sprite并用一个CSS替代50个请求。因为它们是动态的,所以这当然不容易。我正在寻找一种工具/库/方法,可以在运行时将这些图像聚合成一个精灵。幸运的是,图像大小是不变的,对所有人来说都是一样的,这会让这更容易。
有什么建议吗?
您可以检查并尝试使用jawr(https://jawr.dev.java.net/)库来生成/修改(还压缩,合并)servlet上的css文件。它可以动态改变背景图像。 您可以安排用于切换css文件以更换皮肤的软件包。
正面:您还可以管理和安排您的.js文件!
通过调用系统命令行,您可以使用免费的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。
服务器上的处理开销值得吗?
我现在正在考虑为C#创建动态图像并将其发送给客户端时增加复杂性的交易,并减少了个人图像访问。
一个值得分析的折衷。
什么服务器端语言? – 2010-01-27 16:15:32
Java - 抱歉,应该强调servlet。 – Zecrates 2010-01-28 07:38:05
嗨@Zecrates我正面临同样的问题,请你详细说明你是如何解决这个问题的。谢谢。 – Aftab 2015-12-09 05:28:24