是否有任何理由在 grails 中使用通过 TagLibs 公开给定库的 JavaScript 库插件,而不是直接使用它?
Posted
技术标签:
【中文标题】是否有任何理由在 grails 中使用通过 TagLibs 公开给定库的 JavaScript 库插件,而不是直接使用它?【英文标题】:Is there any reason to use JavaScript library plugins in grails that expose the given library via TagLibs instead of just using it directly? 【发布时间】:2011-12-23 20:45:36 【问题描述】:如果您搜索 grails 插件站点,您会发现很多 JQuery 和其他 javascript 库的插件。其中大多数通过 Grails TagLibs 公开给定的 JavaScript 库功能。这真的是一个优势吗?如果是,为什么?
【问题讨论】:
【参考方案1】:要回答您关于使用 TagLibs 公开 JavaScript 功能是否具有优势的实际问题,我的回答通常是否定的。但是你可能会得到与我同意的人一样多的人不同意我。尤其是那些花时间创建这些 TagLibs 的人。
我只是发现直接处理 JavaScript 比通过 taglib 更容易。我可能会考虑的唯一例外是给定远程标记库的 grails,但我个人仍然不使用它们。
【讨论】:
就我个人而言,有时我发现它们有点误导,尤其是如果您不使用远程标记库。此外,有时您会在门户网站上找到这些插件,并且您认为它们具有某种额外的功能,但您会发现它们所做的只是为您包含我认为无用的 javascript 标签。【参考方案2】:就个人而言,我更喜欢使用 JavaScript 标签库而不是纯 JavaScript。例如,如果您想创建一个提交 AJAX 请求并使用响应更新 DIV 的链接,我发现它更容易编写
<g:remoteLink action="show" id="1" update="myDiv"
onLoading="showSpinner();">Click Me</g:remoteLink>
比对应的JavaScript。
如果您安装了 JQuery 插件并决定用 Prototype 替换 JQuery(例如),那么在您用 Prototype 插件替换 JQuery 插件后,上面的标签应该会继续工作。如果您只是将 .js 文件复制到 web-app/js
(而不是使用插件),这是不可能的。
最终,如果您使用 JS 插件,您的应用程序“知道”哪些 JS 库正在使用。然后其他插件(例如resources)可以利用此信息为您带来优势。
【讨论】:
是的,正如您所指出的,我同意使用 grails 远程标签可能是有益的。但是,大多数 3rd 方标记库不是这样编写的。 在尝试了这两种方法后,我接受了您的回答。我发现使用带有诸如 remoteLink 之类的标签的插件可以使代码更简洁,并减少引入您自己的 JavaScript 错误的可能性【参考方案3】:jQuery 只是对 javascript 库的扩展。它没有提供 Javascript 自身不提供的新功能。但是,在做(但不限于)
之类的事情时,它确实让您的生活轻松了很多 Dom 操作 树遍历 阿贾克斯 还有更多当您只是在这里或那里做一些简单而小的事情时,没有必要。但通常情况下,当你在做一个大项目时,包含 jQuery(31 KB 和 1 个 HTTP 请求)并利用它来发挥你的优势是有意义的。
【讨论】:
这似乎没有回答问题。我认为 Pete 是在询问使用 Grails 标签包含 jQuery 与使用普通旧脚本标签相比的优势。 啊,我相信你是对的。我以为他在问问题的标题。以上是关于是否有任何理由在 grails 中使用通过 TagLibs 公开给定库的 JavaScript 库插件,而不是直接使用它?的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何现有的 tag-lib 带有内置在 form-tag 中的 token-tag
是否有任何重要的理由在开关案例中使用枚举的序数,而不是使用枚举?
是否有任何理由不能使用 CSS 在 html 表格中的 <tr> 周围放置边框