Java webapp:在何处/如何自动设置每张图片';s宽度/高度

Java webapp:在何处/如何自动设置每张图片';s宽度/高度,java,jsp,tags,web-applications,Java,Jsp,Tags,Web Applications,出于多种原因,许多“网站管理员指南”(如Google和Yahoo!的网站管理员指南/指南)多次重复,最好总是放置img标签的宽度和高度属性 其中一个最明显的原因是,页面中的元素似乎不会在每个图片加载后“跳转”到新位置(始终设置正确的宽度/高度可以避免这种行为)。还有其他原因需要遵循这些指导方针/最佳实践 因此: 如果我们认为这些确实是好的实践 如果有很多图片并且它们经常变化 如果图片在两个之间没有变化。war重新部署(即:没有用户贡献的图片) 如果我们不想手动编辑所有这些宽度/高度属性 我们

出于多种原因,许多“网站管理员指南”(如Google和Yahoo!的网站管理员指南/指南)多次重复,最好总是放置img标签的宽度和高度属性

其中一个最明显的原因是,页面中的元素似乎不会在每个图片加载后“跳转”到新位置(始终设置正确的宽度/高度可以避免这种行为)。还有其他原因需要遵循这些指导方针/最佳实践

因此:

    如果我们认为这些确实是好的实践
  • 如果有很多图片并且它们经常变化
  • 如果图片在两个之间没有变化。war重新部署(即:没有用户贡献的图片)
  • 如果我们不想手动编辑所有这些宽度/高度属性

我们如何自动/以编程方式为HTML页面提供服务,其中每个img标记的宽度/高度属性都被正确设置为最佳实践建议?

当webapp启动时,我们递归地对整个页面进行爬网,查找每个图片文件并确定其宽度/高度

我们将这些信息保存为“文件到宽度/高度”映射中的映射。稍后,每次生成img标记时,我们都会调用一个方法,该方法会放弃图片的宽度/高度


唯一的“缺点”是地图查找和宽度/高度属性生成是在运行时执行的。

我们有一个更复杂的构建过程,其中所有的.jsp、.css、.html等都得到了优化

  • 包含大量内容的.css文件被折叠到一个文件中(如果你喜欢网站优化,另一个主要的文件,只需使用Chrome的开发者工具或YSlow!并检查有无.css折叠的区别)

  • .jsp和.html文件的所有图像宽度/高度都设置为构建时

  • 图像被赋予唯一的名称,并被设置为foreover可缓存(这与GWT为其生成的JavaScript所做的工作不同,后者使用唯一的标识符)。在下一次构建中,它们将获得新的唯一名称,并且将再次永久可缓存

  • 等等

有很多理由让构建过程比“编译并压缩所有文件”更高级


回答你的问题:我们在构建过程中做了大量的unxshell脚本编写。我们使用一些UNXShell功能处理.jsp、.css、.html等。我可以告诉你,如果没有可能将所有闪亮的shell命令的威力结合起来,人们将很难复制我们正在做的事情:)

注意,你仍然可以在一台(劣质)机器上构建,它没有所有这些强大的shell命令,但结果是。战争是一种优化程度较低的战争。我们自己的指导方针规定“生产构建”必须在真正的机器上完成(我想Cygwin可以工作,但我们不喜欢);)(正如你所猜测的:不,我们不是微软商店;)这听起来相当具体。生成这些图像的原因是什么?它们的具体用途是什么?@BalusC:这些图像用于网站内容。横幅、徽标、截图、布局、添加等。它们是由图形设计师生成的,但它们可以(也将)经常更改,因为这是一个网站,其外观会因事件、季节等而略有不同:)嗯,我通常将它们嵌入为CSS背景图像。我很少对布局/设计图像使用
标记。只有旗帜才是合理的。甚至图标都是CSS背景,以跨距显示。我想我宁愿强迫他们创建固定大小的(背景)图像,并让剩余部分保持透明。但这并不能回答真正的问题:)