实际上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文件

以上是个人总结,如有错误,恳请指出

4 Responses to 实际上js文件放最后是个好方案,但... »

  1. leeon 评论 2010-01-31 20:57

    学习了,不过感觉这个就是相当于多线程吧~

    回复

    joe 回复 一月 31st, 2010 at 21:16

    可能可以这么理解吧,呵呵

    回复

  2. 万戈 评论 2010-02-02 09:15

    HOHO,还有这种方法,不错,可以试试去

    回复

  3. 阿邙 评论 2010-04-17 05:07

    可是我记得好像有些js的文件必须是放在head标签里面的..

    回复

Leave a Reply

Email address is not published

You should say a Chinese word to pass spam check. If you can not input Chinese, just copy 你好 and paste them into comment text box.