什么是推测性解析?

Ara*_*raK 11 firefox parsing

我读过Firefox 3.5在解析器中有一个新功能?

Gecko布局引擎的改进,包括用于更快内容呈现的推测性解析.

你能用简单的语言解释一下吗?

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%的用例中,大多数将加载引用,因此解析器通常正确猜测.

  • http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax通过HackerNews获得关注并包含此问题的链接.至少,这就是我到达这里的方式. (3认同)