0

大家好,我最近加入了与 struts 合作的每一个人。jsp页面中有很多javascript代码,但在小型设备上查看该网站时最终会导致性能问题。所以我们计划将所有这些 javascript 移动到一个脚本文件中。但是我面临的问题是在外部javascript文件中无法访问el表达式形式的大量服务器端变量。如果您有任何解决方案,请提供给我。
提前谢谢你

4

2 回答 2

0

正如评论中已经说明的那样,您可以只将逻辑片段提取到外部文件中,同时保留一个小的内联脚本来传递变量。

作为一个非常简化的示例,您可以从以下内容中提取:

<script>
    alert(${helloWorld});
</script>

以下部分放入单独的文件中:

function sayHello(message) {
    alert(message);
}

并将变量保存在内联脚本中:

<script>
    var helloWorld = ${helloWorld};
    sayHello(helloWorld);
</script>

这也鼓励了一些关注点分离,无论如何这是一个很好的设计建议。我没有深入研究任何其他好的实践,例如这个地方的模块模式。

于 2013-07-02T08:47:27.793 回答
0

您的外部 javascript 文件应该是静态的。这将允许客户端缓存它,并最终使您的网站更快。

如果您需要函数x来使用自定义数据yz,您可以使用 调用它x( y, z );。如果您有更大的数据结构,您可以将它们转储到脚本标签之间的全局范围内(见下文),或者我认为更好的解决方案是通过 ajax 加载更大的数据结构。

<script>
  var data = { "a" : "b", "c" : "d", "e" : [ 1, 2, 3 ] };
</script>
于 2013-07-02T08:48:47.953 回答