Sto*_*bor 25
这与bugzilla中的这个条目有关:https://bugzilla.mozilla.org/show_bug.cgi ? id = 364315
在该条目中,AndersHolbøll建议:
似乎在遇到引用外部文件的脚本标记时,浏览器不会尝试在脚本标记之后加载任何元素,直到加载外部脚本文件.这使得引用几个或大型javascript文件的网站变慢.
...
这里首先加载file1.js,然后依次加载file2.js.然后将同时加载img1.gif,img2.gif和file3.js.当file3.js完全加载时,将加载img3.gif.有人可能会争辩说,由于js文件可能包含例如"
document.write('<!--');" 这样的行,因此在脚本执行之前无法知道脚本标记之后是否有任何内容显示.但我认为,内容显示的可能性要大得多.在这些日子里,页面引用许多外部javascript文件(ajax-libraries,统计和广告)是很常见的,这些文件与当前行为一起导致页面加载被序列化.
基本上,html解析器继续读取html文件并加载引用的链接,即使它因脚本而被阻止渲染.
它被称为"推测",因为脚本可能会执行诸如设置css参数(如" display: none")或注释掉以下html的部分之类的操作,并通过这样做,使得certian加载不必要......但是,在95%的用例中,大多数将加载引用,因此解析器通常正确猜测.