我正在开发一个项目,该项目使用旧的、定制的 CMS 来运行一个使用大量 JavaScript 的网站。在给定的模板 (.jsp) 中,他们使用 Java 条件来设置内联 JavaScript 变量和函数。他们还在各处发出外部 JavaScript 和 CSS 请求。正如您可以想象的那样,这导致了一些非常糟糕的性能。
我正在尝试组织事情,以便大多数 JavaScript 都在外部文件中,在结束 body 标记之前被调用。其中一个棘手的部分是在使用 Java 创建变量时将内联 JavaScript 外部化。据我所知,我不能将一些 Java 放入 .js 文件中。
我想出的解决方案是创建一个对象,Java 可以在其中打印一些变量值,然后将它们传递给外部 JS 文件。例如:
var foo = new Object;
foo.bar = <s:property value="bar" escape="false"/>;
然后在外部文件中:
(function(){
console.log(foo.bar);
}());
从概念的角度来看,这似乎是一个有效的解决方案吗?它似乎工作正常,但我想知道是否有特定原因我不应该这样做。如果我没有使用正确的术语,请原谅我的措辞。