延迟加载Javascript来加速我的Joomla

时间:2012-05-26 11:39:10

标签: javascript jquery delay

我正在使用joomla网站,并强制使用额外的java脚本。

我的问题是:

  1. 如何在页面完成后强制加载javascript
  2. 我不是说延迟它们,而是让它们在队列中直到页面完成加载。
  3. 我尝试了许多链接教程但没有任何帮助我。

    请,

    为了让我明白,你会提供正确的例子。

    JS文件示例我插入到我的页面的按钮:

    <script src="/js/easing.js" type="text/javascript"></script>
    

    你能提供Jquery代码来强制所有这些脚本等到页面加载完成吗?

    谢谢

    塔里克

2 个答案:

答案 0 :(得分:1)

使用<script src="..." async="async"/>。在现代浏览器(HTML5)中,它将单独生成提取的javascript文件,并且不会延迟加载HTML。您可以将脚本标记放在<body>的末尾。

答案 1 :(得分:1)

Ales Kotnik回答非常好,如果你想在你自己的特定时间做这件事,你可以这样做:

function loadScript(url, callback){

var script = document.createElement("script")
script.type = "text/javascript";

if (script.readyState){  //IE
    script.onreadystatechange = function(){
        if (script.readyState == "loaded" ||
                script.readyState == "complete"){
            script.onreadystatechange = null;
            callback();
        }
    };
} else {  //Others
    script.onload = function(){
        callback();
    };
}

script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}

这将仅在您调用脚本时加载脚本,然后您将其激活:

<script type="text/javascript" src="http://your.cdn.com/first.js"></script>
<script type="text/javascript">
loadScript("http://your.cdn.com/second.js", function(){
    //initialization code
});
</script>