外部javascript引用是否会导致浏览器等待下载它们?

外部javascript引用是否会导致浏览器等待下载它们?,javascript,html,Javascript,Html,当您的页面被解析时,它遇到了或其他什么,页面是否会等到该文件下载并可用后再继续解析 增加: 大多数浏览器是否同时下载所有脚本以节省时间(即使它们按顺序执行)?在js文件完全下载之前,每个标记都会阻止页面进一步呈现。最好将js文件放在body标签的末尾所有主要浏览器都应该尝试同步获取这些文件,因为列表中的下一个脚本可能依赖于前面的脚本 是的,这就是为什么人们建议在标记之前添加脚本,或者使用延迟属性 页面是否等待该文件被删除 已下载并于 继续解析 它不仅要等到JS被下载,还要等到JS被解析和执行。其

当您的页面被解析时,它遇到了
或其他什么,页面是否会等到该文件下载并可用后再继续解析

增加:


大多数浏览器是否同时下载所有脚本以节省时间(即使它们按顺序执行)?

在js文件完全下载之前,每个标记都会阻止页面进一步呈现。最好将js文件放在body标签的末尾

所有主要浏览器都应该尝试同步获取这些文件,因为列表中的下一个脚本可能依赖于前面的脚本

是的,这就是为什么人们建议在
标记之前添加脚本,或者使用
延迟属性

页面是否等待该文件被删除 已下载并于 继续解析

它不仅要等到JS被下载,还要等到JS被解析和执行。其他关于把它放在页面末尾的建议是非常正确的

大多数浏览器同时运行吗 下载所有脚本以节省时间 (即使他们按顺序执行)


事实上,我认为只有更新的才会这样。很抱歉,我在很久以前遇到过一个关于这个的网页,我没有将其添加书签。

是的,它将被阻止,并且只有在加载之前的其他脚本时才会执行脚本

例如

最后,您可以通过执行以下操作获得完全异步加载:

var script1 = document.createElement('script');
script1.src = 'script1.js';
document.getElementByTagName('body')[0].appendChild(script1);    

var script2 = document.createElement('script');
script2.src = 'script2.js';
document.getElementByTagName('body')[0].appendChild(script2);    
最后一个很快,因为脚本是完全并行加载的,但是有一个很大的问题。对于基于Webkit的浏览器,不保证顺序,如果先加载script1.js,则script2.js将在script1.js之前执行。如果您可以解决这个问题,比如说将所有脚本放在一个javascript文件中,那么这个方法非常好

   document.write('<script src=\'someExternalSite/script1.js\'></script>');
   document.write('<script src=\'someExternalSite/script2.js\'></script>');
var script1 = document.createElement('script');
script1.src = 'script1.js';
document.getElementByTagName('body')[0].appendChild(script1);    

var script2 = document.createElement('script');
script2.src = 'script2.js';
document.getElementByTagName('body')[0].appendChild(script2);