在 Grails 中,基本上有 2 个地方可以定义 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 中,然后将它们粘合在一起,
有任何想法吗?
(编辑:这听起来像是动态生成 JavaScript 函数的一部分,然后下载一次并由客户端一遍又一遍地使用的想法,这是一个坏主意。但是,“动态”部分只会改变也许每周或每月一次,然后很少。大多数情况下,我们只希望从数据库中生成这个片段,即使只有一次,而不是硬编码。)