2011-12-03 36 views
1

我知道很多的网络分析工具使用下面的脚本来dyanmically创建一个脚本标签:动态创建脚本标签和静态嵌入脚本标签有什么区别?

<script type="text/javascript"> 
    var s = document.createElement('script'); 
    s.type = 'text/javascript'; 
    s.src = 'http://s/s.js'; 
    document.body.appendChild(s);</script> 

我的问题是,如果是有区别的,如果我静态嵌入脚本如下所示:

<script type="text/javascript" src="http://s/s.js"></script> 
+0

如果有人说Javascript是用来嵌入标签的话,那么文件名是动态的,而且你想用javascript来确定/如何加载文件。如果你不需要做任何事情,只需静态,简单地做读书。 – Zoidberg

回答

4

他们这样做,以便它异步加载,或者至少它只是在正常JS加载并执行后才加载。它避免了让渲染树等待这个JS加载,因此页面更快。

1

当您静态嵌入脚本标记时,浏览器通过dom中定义的脚本标记时下载文件。对html文档的进一步处理将停止,直到下载js文件,这可能会减慢页面加载时间,这就是为什么建议您将脚本标记保留在dom末尾的原因

但是,通过将其添加到DOM动态确保脚本文件仅在运行javascript时下载。请注意,在DOM中遇到此代码并在HTML文件的中间位置执行代码时,它仍会阻止进一步呈现页面。