在jquery.ready之后加载javascript文件

时间:2010-05-13 19:02:21

标签: javascript jquery

我想在jquery.ready的末尾加载一个javascript文件,这样我的ready处理程序中的代码就不必等待执行,直到加载了这个大的javascript文件。

我的jquery.ready代码根本不依赖于这个javascript文件。

这是一个很好的方法吗?

$(function(){
    ...
    ...      
    $('head').append('<script type="text/javascript" src="/largejs.js"></script>');
});

4 个答案:

答案 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/