我想在jquery.ready的末尾加载一个javascript文件,这样我的ready处理程序中的代码就不必等待执行,直到加载了这个大的javascript文件。
我的jquery.ready代码根本不依赖于这个javascript文件。
这是一个很好的方法吗?
$(function(){
...
...
$('head').append('<script type="text/javascript" src="/largejs.js"></script>');
});
答案 0 :(得分:25)
使用.getScript: http://api.jquery.com/jQuery.getScript/
$(document).ready(function(){
...
...
$.getScript("largejs.js");
});
答案 1 :(得分:2)
解决方案将检查jquery已经加载,如果不是它会在这里检查一段时间后500ms并循环直到找到jquery
function loadScriptAfterJQueryReady(jsFile) {
setTimeout(function () {
var loadScript=true;
if (typeof jQuery == 'undefined') {
if (typeof window.jQuery == 'undefined') {
/* jQuery is not loaded */
loadScript=false;
loadScriptAfterJQueryReady(jsFile);
}else{
/* jQuery is loaded */
}
} else {
/* jQuery is loaded */
}
if(true==loadScript) jQuery.getScript(jsFile);
}, 500);
}
loadScriptAfterJQueryReady("my.js");
答案 2 :(得分:1)
引用的“</script>
”标记实际上会过早地结束您的JavaScript块。
我会用这个方法:
var newScript = $(document.createElement('script'));
newScript.src="/largejs.js"
答案 3 :(得分:0)
如果您的应用程序是新的并且还不太远,那么您可以为此目的使用LABjs获得很多。它允许所有脚本文件并行加载,甚至可以在您喜欢的任何其他时间加载(按需)。 http://labjs.com/