7

嗯.. 我们已经使用 struts2 ajax 功能开发了一个 j2ee 应用程序。我们发现 dojo 的实现非常缓慢。我们做了以下事情: 1. dojo 库的自定义构建。(将 dojo.js 从 240kb 增加到 350kb) 2. 从 struts jar 中取出所有静态内容并将其保存在外面。

性能显着提高。但它仍然很重,你可以猜到 350kb 大小..

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


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

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

将继续更新进一步的变化..

4

3 回答 3

8

首先检查您是否在服务器上完成了所有便于缓存的操作(例如,设置正确的 HTTP 标头、压缩、服务器端缓存、上游缓存等)。有关更多详细信息,请参阅提高性能...。

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

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

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

  • 评估上面链接中讨论的闪屏技术。
  • 如果您使用许多不同的表单小部件,请查看是否真的有必要,然后使用常规 DOM 元素,如“input”、“button”、“textarea”、“select”。
  • 布局小部件也是如此。看看简单的 CSS 是否可以帮助您。
  • 评估分层构建 Dojo 而不是一个单一的 dojo.js,以便网页仅加载必要的子集。请参阅包系统和自定义构建中的详细信息。

在过去的 2 年里,我一直以使用 Dojo 构建 Web 应用程序为生.

于 2008-11-29T19:16:36.663 回答
2

确保您首先遵循此常见问题解答: http://struts.apache.org/2.x/docs/performance-tuning.html

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

于 2008-12-16T05:14:38.837 回答
0

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

于 2008-12-16T05:08:59.813 回答