Mozilla 于今年 11 月推出别名为 Quantum 的 Firefox 57 版本,透过更快的反应速度和更少的资源需求量,迎战 Google Chrome 网页浏览器。而开发 Tailing 功能的工程师 Honza Bambas 于自己的博客公布详细运作机制,延后执行追踪网站的脚本载入请求。
Firefox 57 Quantum 于今年 11 月推出正式版,利用 Firefox 重写计划 Project Quantum 从里到外重新塑造网页浏览器,导入平行化处理善用多核心处理器,也调整相关作业的优先权重,让与使用者切身相关的网页内容绘制或是界面反应加快。负责其中 1 项 Tailing 功能的软件工程师 Honza Bambas,于自己的博客解释 Tailing 功能与实际做法,透过延后执行追踪网站的脚本(scripts)载入,将资源先行投入主要内容页面。
original="http://imgs.technews.cn/wp-content/uploads/2017/12/firefox-57-delays-requests-to-tracking-domains-1-e1514344088198.png" data-image-enhancer="larger than third of 645" />
▲ Firefox 57 导入 Tailing 功能,代表网页主要内容的浅蓝色率先执行,之后才处理浅橘色的追踪网站脚本
目前大多数网站都会加入使用者追踪脚本,用以精准投放广告、市场统计、社交媒体互动等功能,而 Firefox 57 预设开启 Tailing 功能,将位列浏览器 Tracking Protection 资料库当中的网域脚本延后执行,由此达成加快载入并绘制网页内容;而这些追踪脚本也并非关闭不执行,只是延后数秒并不违反 HTML 规范,若是网页原始码经过良好设计,并不会造成破版或显示问题。
▲ 将 Tailing 功能关闭之后,网页内容即按照正常流程处理。
只有当网页内容还在载入时,Tailing 功能才会运作,最多只会把追踪网站脚本请求延后 6 秒左右,并且只会延后动态或非同步脚本,至于图片追踪和 XMLHttpRequest 则一律延后。若是网页写得不好,或显示内容会因为这些追踪网域脚本而跟着变化,内容显示就会受到影响,甚至整个网页会空白 4 秒,此时使用者可在网址列键入 about:config,然后将 network.http.tailing.enabled 设为 false 关闭。