如何在外部javascript中使用服务器端变量

时间:2013-07-02 08:35:35

标签: javascript struts

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

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

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

答案 1 :(得分:0)

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

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

<script>
  var data = { "a" : "b", "c" : "d", "e" : [ 1, 2, 3 ] };
</script>