日期:2014-05-16  浏览次数:20430 次

实际上js文件放最后是个好方案,但有更好的方案
问:javascript文件在页面加载的时候放哪里最好?

之前被这样问到,我马上就答:放最后。现在反省!实际上这个答案太肤浅了。

运行 Internet Explorer 7 或更早版本的浏览器在遇到 JavaScript 文件时会产生阻碍。通常,它们在以所谓的推测模式下载时速度足够快。但如果遇到 JavaScript,浏览器会跳出此模式,专门下载 JavaScript。而且多个Javascript是按串行形式下载,您将发现 JavaScript files 文件之间不会出现并行,也绝少会同时加载其他类型的文件。

所以我们会把所有其他东西都下载才开始下载js文件,所以我以前的答案是:把js放最后面。

而实际上在这个基础上还有技巧,就是把原来串行加载js的方式转为并行。具体做法:
<script language="javascript">
function AsyncLoad(){
    var l = arguments.length;
    for (var i=0;i<l;i++){
         document.write("<script src='" + arguments[i] + "'></" + "script>");
    }
}
AsyncLoad("file1.js","file2.js","file3.js");
</script>


我把这个做法总结为:在文档末端通过小js文件加载大js或多个js文件