初始化一个加载javascript的网格,我需要从controller / gsp传递一个值列表。由于javascript在呈现/加载页面时被激活,因此可能没有直接的方法来执行它。 2种可能性 1.执行ajax调用,并从服务器检索值列表 2.将列表存储在html中作为隐藏元素,并从javascript中读取。
选项2看起来更好,因为它避免了很少的回调到服务器。那么,我应该将哪个控件用于值列表?任何jQuery代码片段,将其读回数组/列表。
提前感谢。
答案 0 :(得分:1)
这取决于该数据的大小。它足够小,你可以把它嵌入页面。例如,要使用事件填充日历,我使用了以下内容:
<div id="calendar" data-events="[/* event list */]"></div>
(data-events
属性包含JSON格式的JavaScript事件对象数组)
但是,如果您正在谈论大量数据,在页面加载后(或文档准备好时)异步加载(可能是块),可以提高应用程序的性能并使其更具交互性(即I如果我要做的下一件事就是离开那么,我不想等待并加载那些数据。
这会回答你的问题吗?
答案 1 :(得分:1)
您可以直接从服务器端编写JavaScript。我不知道grails,但这是php中一个非常简单的例子:
<script type="text/javascript">
var someVar = "<?php echo $someServerVar;?>";
</script>
当然,这个例子很简单,但你明白了。大多数语言都会有一些函数逃脱JavaScript字符串(基本上将"
转换为\"
,将新行转换为\n
)。
如果您在<head>
的顶部放置这样的脚本,则可以从页面上的所有其他脚本访问这些变量。