在jquery.ready之后加载javascript文件
我想在jquery.ready的末尾加载一个javascript文件,以便我的ready处理程序中的代码不必等待执行,直到加载这个大的javascript文件。
我的jquery.ready代码根本不依赖于这个javascript文件。
这是一个很好的方法吗?
$(function(){ ... ... $('head').append(''); });
使用.getScript: http ://api.jquery.com/jQuery.getScript/
$(document).ready(function(){ ... ... $.getScript("largejs.js"); });
解决方案将检查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");
引用的“ ”标记实际上会过早地结束您的JavaScript块。
我会用这个方法:
var newScript = $(document.createElement('script')); newScript.src="/largejs.js"
如果您的应用程序是新的并且还不太远,那么您可以为此目的使用LABjs获得很多。 它允许所有脚本文件并行加载,甚至可以在您喜欢的任何其他时间加载(按需)。 http://labjs.com/