【发布时间】:2010-09-30 08:24:20
【问题描述】:
在 Grails 中基本上有两个地方可以定义 JavaScript 函数,直接在 GSP 上的一个元素中,以及在 /web-app/js 下的一个单独的 JavaScript 源文件中(例如,application.js)。我们在 application.js 中定义了一个常用的 javascript 函数,但我们还需要能够使用 groovy 代码动态生成函数的一部分。不幸的是,${some groovy code} 似乎没有在单独的 javascript 源文件中进行处理。
是通过在 GSP 页面上的脚本标记中定义 javascript 函数来做到这一点的唯一方法,还是有更通用的解决方案?显然,我们可以在模板 GSP 文件中的脚本标记中定义 javascript 函数,该文件将被重用,但是有很多努力将我们的 javascript 函数一起定义在一个地方(即外部 javascript 源文件)。这也有性能优势(javascript 源文件通常只由每个客户端的浏览器下载一次,而不是在他们访问的每个 html 页面的源中重新加载相同的 javascript 函数)。我玩弄了将函数分解为静态和动态部分的想法,将静态部分放在外部源中,将动态部分放在模板 GSP 中,然后将它们粘合在一起,但这似乎是不必要的 hack。
有什么想法吗?
(编辑:这听起来像是动态生成 JavaScript 函数的一部分,然后下载一次并由客户端反复使用的想法,这不是一个好主意。但是,“动态" 可能每周或每月只更改一次,然后只是非常轻微。大多数情况下,我们只希望从数据库生成这部分,即使只有一次,而不是硬编码。)
【问题讨论】:
标签: javascript grails groovy