假设这两种方法都正确加载脚本,并且在使用脚本之前等待适当的时间(和/或使用回调),这些方法之间的主要区别是什么.
注意:我理解第一个使用jQuery(这是一个更大的下载等).我真正感兴趣的是这些方法的影响.是否将脚本放在与另一个不同的范围内?等等.
jQuery的:
function loadScript() {
$.getScript('http://www.mydomain/myscript.js');
}
Run Code Online (Sandbox Code Playgroud)
附加到身体:
function loadScript() {
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'http://www.mydomain/myscript.js';
script.async = true;
document.body.appendChild(script);
}
Run Code Online (Sandbox Code Playgroud)
追加头:
function loadScript() {
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'http://www.mydomain/myscript.js';
script.async = true;
head.appendChild(script);
}
Run Code Online (Sandbox Code Playgroud) 我试图确定如何有效地找到/检索/加载对象.)最小化对数据库的调用和b.)保持代码尽可能优雅/简单(即不编写hql等).
假设您有两个对象:
public class Foo {
Bar bar
String badge
}
public class Bar {
String name
}
Run Code Online (Sandbox Code Playgroud)
每个Foo都有一个酒吧和徽章.还假设所有徽章在条形图中都是唯一的.因此,如果Foo的徽章为"4565",则没有其他Foos具有相同的徽章#和相同的栏.
如果我有一个酒吧ID,我怎样才能有效地检索Foo而不先选择Bar?
我知道我可以这样做:
Foo.findByBadgeAndBar("4565", Bar.findById("1"))
Run Code Online (Sandbox Code Playgroud)
但这似乎导致Bar表上的select,然后是Foo表上的select.换句话说,我需要生成以下Grails/Hibernate/GORM:
select * from foo where badge="4565" and bar_id="1"
Run Code Online (Sandbox Code Playgroud)