【发布时间】:2011-05-14 00:29:11
【问题描述】:
arrays.jsp:
//...
var x = <c:out value="${x}"/>
<c:if test="${empty doExternal}">
processExternalArrays();
</c:if>
//...
我想缩小/混淆包含在一个大型 JSP 文件中的 JavaScript,其中许多 JSP/JSTL 变量混合到 JavaScript 代码中,例如上面的 sn-p。
代码依赖于使用服务器端逻辑填充的变量,然后传递给客户端代码,如上所述。
我已经在使用 YUI 压缩器缩小我的 JS 文件,但我不知道如何处理我的 JSP 中的 JavaScript 代码。
鉴于此代码是动态创建的,是否可以缩小/混淆它?
【问题讨论】:
-
您必须拥有某种服务器设施才能即时执行此操作;但是,您的页面上真的有足够的代码来证明它的合理性吗?
-
不确定在服务器上即时执行此操作是什么意思。 (是的。有很多代码。)
-
好吧,与其将所有代码保留在页面上,不如尽可能多地提取到单独的 .js 文件中。您将保留在页面上的将是最少数量的 JSP 处理的变量声明。您单独的 .js 文件只会通过在每个页面上找到它们来访问它们。
-
将 JS 分离到一个单独的文件中会很好......但似乎需要做很多工作和额外的测试......但是,不要继续编写生成动态 javascript 语句的代码。您应该转向使用数据的静态 js,而不是使用服务器端语言动态生成数据,将单独的部分放在不同的地方。
-
@Oscar:你找到解决方案了吗?
标签: java javascript jsp jstl obfuscation