Struts 2& Dojo文件太重,影响网站的性能..任何补救措施?

时间:2008-11-29 18:30:49

标签: ajax performance dojo struts2

嗯..我们使用struts2 ajax功能开发了一个j2ee应用程序。我们发现dojo实现很慢。我们做了以下事情: 1.自定义构建dojo库。 (将dojo.js从240kb增加到350kb) 2.将所有静电东西从支柱罐中取出并放在外面。

表现得到显着改善。但是仍然很重,因为你可以用350kb的尺寸猜测..

struts2 ajax应该是这么重吗?或者有更轻的实施可用吗?


编辑:我在我的应用程序中使用了Firebug和YSlow。下面提到了几个极大改善我情况的变化:

  1. 自定义构建dojo(减少I / O数量)
  2. 将静态文件移出Struts jar(帮助很大)
  3. 调整服务器以gzip响应(将响应大小减小到1/3)
  4. 减少您网站上的图片数量(很明显)
  5. 将继续更新进一步的更改..

3 个答案:

答案 0 :(得分:8)

首先检查您是否在服务器上执行了所有操作以促进缓存(例如,设置正确的HTTP标头,压缩,服务器端缓存,上游缓存等)。有关详细信息,请参阅Improving performance…

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

不要忘记它也适用于你的动态数据 - 选择有效的格式,将几个相关的请求捆绑在一起,删除一遍又一遍地发送的所有枯木。

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

  • 评估上面链接中讨论的启动画面技术。
  • 如果您使用了许多不同的表单小部件,请查看它是否真的有必要,并依赖于常规DOM元素,如“input”,“button”,“textarea”,“select”。
  • 布局小部件也是如此。看看简单的CSS是否可以帮助你。
  • 在层中而不是单个dojo.js中评估构建Dojo,因此网页只加载必要的子集。请参阅The Package System and Custom Builds
  • 中的详细信息

使用Dojo为过去2年的生活构建Web应用程序我仍然没有看到一个无法正确优化的应用程序,直到它被完全接受并被最终用户视为“快速”,“灵活”和“轻” - 重量”。

答案 1 :(得分:2)

请务必先按照此常见问题解答: http://struts.apache.org/2.x/docs/performance-tuning.html

我通常会重新编写自己的主题,而不是使用内置了dojo的struts2 ajax主题。这样我就可以使用我想要使用的任何工具包(jQuery)。当我将模板文件夹从jar复制到webapp的根网站目录时,我看到了最大的性能改进。

答案 2 :(得分:0)

最后我查了一下,struts发布的Dojo(0.4)版本已经发布了2年。 Dojo对版本0.9 / 1.0进行了重写,性能显着提高,代码大小减少。您应确保运行最新版本的Dojo(当前版本为1.2.3)并使用上面Eugene的构建和提示。