Hello我最近加入的每个人都使用struts。 jsp页面中有很多javascript代码,但在小型设备上查看此网站时会导致性能问题。所以我们计划将所有这些javascript移动到一个脚本文件中。但是我面临的问题是,在外部javascript文件中无法访问el表达式中的许多服务器端变量。如果您有任何解决方案,请提供解决方案 提前感谢你
答案 0 :(得分:0)
正如评论中已经说明的那样,您可以只将逻辑片段提取到外部文件中,同时保留一个用于传递变量的小型内联脚本。
作为一个非常简单的示例,您可以从以下内容中提取:
<script>
alert(${helloWorld});
</script>
将以下部分放入单独的文件中:
function sayHello(message) {
alert(message);
}
并将变量保存在内联脚本中:
<script>
var helloWorld = ${helloWorld};
sayHello(helloWorld);
</script>
这也鼓励了一些关注点的分离,无论如何这是一个很好的设计建议。我没有潜入任何其他good practices,例如这个地方的模块模式。
答案 1 :(得分:0)
您的外部JavaScript文件应该是静态的。这将允许客户端缓存它,并最终使您的网站更快。
如果您需要使用功能x
来使用自定义数据y
和z
,则可以使用x( y, z );
进行调用。如果你有更大的数据结构,你可以将它们转储到脚本标签之间的全局范围内(见下文),或者,我认为更好的解决方案,通过ajax加载更大的数据结构。
<script>
var data = { "a" : "b", "c" : "d", "e" : [ 1, 2, 3 ] };
</script>