gpt4 book ai didi

javascript - jsp 中包含多个 Javascript 标记

转载 作者:行者123 更新时间:2023-12-02 19:38:00 27 4
gpt4 key购买 nike

这是我在 jsp 中的代码:

<script>  
var myArray = [];
</script>
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
<script>
//Executes for each iteration. Do something COOL.
myArray.push("Something from this iteration");
</script>
</c:forEach>

现在请考虑以下事项:

<script>  
var myArray = [];
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
myArray.push("Something from this iteration");
</c:forEach>
</script>
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
//Executes for each iteration. Do something COOL.
</c:forEach>

这两个代码给我相同的输出。
问题是,就性能而言,哪一个更好?
在第一种情况下,c:forEach 内的脚本标记一次又一次地重复。
但在第二种情况下,我将再创建一个 c:forEach,它已存在于 JSP 中。
完全迷失在这里。请指教。

最佳答案

完全没有必要将这些东西单独放在 <script> 中标签。如果您确实想让它变得更好,您可能应该考虑创建一个 JavaScript 数组文字,而不是一系列“push()”调用。将 Java 数组呈现为 JSON 的 JSP 扩展就可以解决这个问题。

编辑 - 详细地说,作为 JSTL 函数提供的 JSON 编码器将允许您编写如下内容:

<script>
var myArray = ${yourTLD:toJSON( some.java.array _)};
</script>

“toJSON”函数将获取数组并将其呈现为标准 JSON,具体取决于其内容(当然,这可能会受到一些限制,具体取决于所使用的 JSON 代码)。交付给浏览器的 JavaScript 代码看起来像这样:

<script>
var myArray = [ "something", "something", "something" ];
</script>

再次完全取决于 Java 数组中的内容。 Java 有多种 JSON 编码库,编写一个库并不是很难(事实上,在特殊情况下,这比采用开源库更容易)。将函数提供为 JSTL EL 函数只需在某处创建公共(public)静态函数并在 .tld 文件中声明它即可。

关于javascript - jsp 中包含多个 Javascript 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com