grails specifying javascript library
grails specifying javascript library
在我的grails应用程序中,我们使用jquery。我在必要的页面上包含 jquery
<g:javascript library="jquery"/>
如果我们决定更改JavaScript库,我需要更新每个页面。我知道我可以将其包含在布局中,但并非每个页面上都需要库,因此这似乎很浪费。
在grails中是否有一种典型的方法可以在一个地方指定默认的javascript库应该是什么,然后只包含默认的javascript库,而不在每个页面上指定它是jquery(或任何它是什么)?
由于大多数浏览器都大量缓存 JavaScript 库之类的东西,因此将库包含放入布局中可能比将其放在每个单独的页面中更好。浏览器所做的大量缓存意味着用户只会从服务器为您的整个站点(或至少他们的浏览会话)加载一次库,并且通过在布局中处理它,您可以大大减少维护负载(您提到了)
一般来说,你的JavaScript库应该是高度缓存的,在许多情况下,最好从高度使用的CDN中提取它们,比如谷歌的。只有当 CDN 提供商出现故障并且浏览器无法访问其库时,才应请求您的"本地"(即来自您的服务器)库。(看看HTML5Boilerplate项目是如何完成的)
因此,我不会担心将库放入布局页面会导致非常小的性能影响。即使您没有为您的库使用常用的 CDN,人们今天实际使用的任何浏览器也只会加载您的 JavaScript 库一次(它获得的第一个页面包含它),并且只会将其缓存副本用于您网站上的其余页面。
因此,简而言之,将其放在布局页面中,不要担心。它只会在第一次页面加载时被请求,并且将来自所有后续加载的缓存,并且您的代码库将是 DRYer。
您还可以创建一个外部 JS 文件,有选择地加载您指定的文件。 像这样:
//FILENAME: jselector.js
if ( [conditions] ) {
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename); //reference your Jquery file here
document.getElementsByTagName("head")[0].appendChild(fileref);
}
然后在需要它的每个页面中放置对此文件的引用(jselector.js
)。
<script type="text/javascript" src="jselector.js"></script>
如果你的jQuery文件发生了变化,你更新这个单一的外部JS(jselector.js
),所有页面将自动指向新的jQuery。
- GWT (or javascript) library for couchDB
- Javascript Audio Library
- Javascript SVG viewer library
- JavaScript iCal Library
- Javascript Forge Crypto Library:重新创建公钥和私钥以供以后重用
- JavaScript library development
- Javascript Moment Library
- Javascript Common Tasks Form Library
- Prototype Library for if loop JavaScript
- grails specifying javascript library
- 将 Google API Javascript Client Library 加载到 Chrome 扩展中
- 适用于Windows Library for Javascript的WriteableBitmap等效文件
- Javascript- Graphing Library
- webdav javascript library
- Javascript Diagram Library
- onmouseenter / onmouseleave In a JavaScript Library
- JavaScript 2D rendering library [pixie.js vs three.js]
- 在library.js中执行onLoad事件的JavaScript代码
- Javascript library in gwt
- Javascript 'thread join' library?