2008-11-29 50 views
7

那么..我们已经开发了一个使用struts2 ajax功能的j2ee应用程序。我们发现dojo的实现非常缓慢。我们做了以下事情: 1.定制构建dojo库。 (将dojo.js从240kb增加到350kb) 2.将所有静态内容从struts jar中取出并保存在外面。Struts 2和Dojo文件太重并影响网站的性能。任何补救措施?

性能显着提高。但仍然是相当沉重,你可以猜测与350kb大小..

是否struts2 ajax应该是这么重?还是有更轻的实现?


编辑:我用我的应用程序Firebug和YSlow。这改善了我的状况非常有下面提到的变化夫妇:道场

  1. 自定义生成(减少I/O次数)
  2. 将静态文件从Struts的罐子(帮助很大)
  3. 调整您的服务器gzip压缩的响应(减少响应大小1/3)
  4. 减少网站上的图像的数量。(这是显而易见的)

会不断更新关于进一步变化..

回答

8

首先检查你做的一切都是在服务器上,以方便缓存的(例如,正确设置HTTP头,压缩,服务器端缓存,上游缓存,等等)。有关更多详细信息,请参阅Improving performance…

目标是尽可能减少I/O —使用Firebug或任何其他网络流量监测工具来查看来回发送多少。尽量减少I/O请求的数量和总字节数。

不要忘了,它适用于您的动态数据也—选择有效的格式,捆绑了几个相关请求一起,删除,这是获得发送遍地不变的所有枯枝。

如果自定义构建和服务器端调整没有帮助,可以考虑重构您的Web应用程序以使其更轻量级。示例:

  • 评估上面链接中讨论的启动画面技术。
  • 如果你用了很多不同形式的小部件,看是否真的是必要的,依傍常规的DOM元素,如“输入”,“按钮”,“文本区域”,“选择”。
  • 布局小部件也是如此。看看简单的CSS可以帮助你。
  • 评估构建Dojo层而不是一个整体dojo.js,所以只有必要的子集被网页加载。详见The Package System and Custom Builds

使用Dojo为过去两年的生活构建Web应用程序直到最终用户完全接受和感知为“快速”,“灵活”之前,我仍然没有看到无法正确优化的应用程序,和“轻量级”。

+0

嗨尤金..是否通常有300+的dojo.js文件大小?因为这也是我的担心之一。谢谢。 – Satya 2008-11-30 13:08:22

+0

基数是26k。 300k意味着你包含了很多其他的东西。 – 2008-11-30 16:38:41

0

最后我检查了一下,struts发布了Dojo(0。4)这是2岁。 Dojo对版本0.9/1.0进行了重写,该版本具有显着的性能增益和减小的代码大小。您应该确保您正在运行最新版本的Dojo(当前版本为1.2.3),并使用上面的Eugene的构建和提示。

2

请务必遵循此FAQ第一: http://struts.apache.org/2.x/docs/performance-tuning.html

我通常重新写我自己的主题,而不是使用已道场始建于struts2的AJAX主题的这样,我可以使用任何工具包,我想用。 (jQuery的)。当我将模板文件夹从jar复制到webapp的根web目录时,我看到了最大的性能改进。