【问题标题】:JSP load taking more than 12 secondsJSP 加载耗时超过 12 秒
【发布时间】:2015-09-14 02:23:43
【问题描述】:

我的 JSP 加载时间超过 12 秒。它在 IE11 上运行良好。它包括 6 个其他 jsps。我正在尝试分析导致父 jsp 加载时间较长的原因。

是否每次加载父 JSP 时都会编译包含的 JSP?

每个 JSP 和父 JSP 都有一些在 script 标签中定义的函数。
这些函数是在服务器上编译的吗? 如果编译,浏览器每次加载时都会渲染这个 JS 函数吗?

改进步骤: 在 JS 脚本中包含所有 JS 函数并在页面上导入。这样浏览器就可以从浏览器缓存中获取它,而不是一次又一次地渲染它。会有帮助吗?

这是分析器报告的快照。

【问题讨论】:

  • 我解决了 IE8 将负载降低到 3-4 秒的问题。将脚本标签中的所有 JS 代码添加到单个 JS 文件中,并将其导入 JSP。随后为应该在后台加载的 jquery 更改事件的数量添加了 setTimeout。我正在使用缩小版的 JS 文件,并在最后包含 JS,看看它是否会进一步提高性能。

标签: javascript jsp internet-explorer-8 tomcat7


【解决方案1】:

JSP 通常由应用程序服务器编译一次,生成的类文件在重新启动之间重复使用。在 Tomcat 中,它们存储在工作目录中。

Where are compiled JSP Java (*__jsp.java) files?

您可以删除工作目录,然后在服务器启动后监控工作目录,看看编译需要多长时间。一个浏览器不应该比另一个浏览器更长,因为编译发生在服务器端。

我有点困惑,因为您答案的第二部分引用了 JS 文件。你问的是 Javascript 还是 Java 服务器页面?

【讨论】:

  • 它的javascript。我需要知道jsp脚本标签中定义的js函数是否也在服务器端编译。如果是这样,它们是否每次都被浏览器加载,因为它们位于脚本标记中而不是导入的 js 文件中。我的假设是浏览器缓存导入的 js,并在随后调用相同 url 时从浏览器缓存中获取它,而不是返回相同的 js 代码
【解决方案2】:

您可以使用任何 java 分析器工具(例如 Yourkit)进行分析,并查看大部分时间都花在了哪里

【讨论】:

  • 请找到附加的分析报告快照。我无法弄清楚导致延迟的确切功能。它说函数是用户类型的,但它们都是核心判断调用。
  • 嗯.. 如您所见,这是 UI 问题,而不是服务器端
猜你喜欢
  • 2019-10-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 2018-06-17
相关资源
最近更新 更多