重新审视网站优化的经验法则:JavaScript在现代浏览器中仍然是必不可少的

Revisiting site optimization rules of thumb: JavaScript still necessary at the bottom with modern browsers?

本文关键字:浏览器 必不可少 仍然是 JavaScript 网站 新审视 优化 经验法则      更新时间:2024-01-16

我已经关注web开发趋势超过10年了。我一直坚持的最大的网站优化技术之一是JavaScript位于网站的底部。

我坚持的理由是JavaScript阻止并行下载,并且每个主机名一次只能下载两个组件。如果添加到文档的标题中,这将对您的网站加载时间产生负面影响。

现在,我重新审视了我以前对网站优化的所有想法,我了解到,在现代网络浏览器中,这些都不再是真的了。

例如,从2015年2月起,InternetExplorer11现在每个主机名可以有13个连接(不再只有两个),JavaScript也不再阻止并行下载!这种行为也适用于所有现代浏览器。

虽然可以理解的是,如果在用户与页面交互之前不使用JavaScript,并且无论如何都应该将其放在底部,那么它现在和以前一样重要吗?

我正在浏览电子商务网站,看看他们现在使用的模式:

http://us.karenmillen.com/Karen-Millen-texture-knitted-dress/dp/B00TH9FDQG?class=quickView&field_availability=-2&field_browse=6482174011&id=卡伦+米伦+质感+针织+连衣裙&ie=UTF8&refinementHistory=subjectbin%2color_map%2Price%2size_name&searchNodeID=6482174011&searchPage=1&searchRank=-product_site_launch_date&searchSize=12

看着这座建筑,我差点哭了。超过60个外部JavaScript文件,其中很多在页眉中,而页脚中几乎没有。

但从网络时间线来看,大多数JavaScript文件都是以如此惊人的速度首先加载的,这确实不会影响网站的其他部分。您可以看到所有并行文件同时被下载。

我想这是出于某种特殊的原因,所以我冗长的问题是我错过了什么吗?

对于现代浏览器来说,遵守我们过去的旧规则有多必要?既然我们不再依赖IE6和那个时代为浏览器制定的规则,我们是否应该重新审视我们如何优化网站?

优化技术已经发生了变化,但与此同时,浏览器的JavaScript运行时引擎+用户资源也变得更好了。的确,通过重新访问旧代码可以获得更高的性能,但我怀疑性能的提高是否值得冒意外破坏旧代码的风险(尤其是当涉及IE时)。

很明显,您的代码所做的以及它所迎合的对象会在决策中产生很大的影响。例如,如果您的用户中有很大一部分在使用移动浏览器,那么JavaScript性能就更重要了。

--编辑--

顺便说一句,我想提到国际海事组织,该网站对表演不友好。加载那么多外部(和嵌入式)脚本是不正常的。现在加载大量JS文件的更好方法之一是通过AJAX注入它们。另一种方法是让服务器根据页面将各种JS文件合并为一个文件,然后缓存这些处理过的文件。

不幸的是,并行下载只是JS优化中的众多问题之一。

虽然与以前相比,现代浏览器可以并行下载更多的文件,但浏览器仍然会按顺序解析它们。如果脚本#50(满分100)没有下载,有一个无限循环或其他什么,即使所有99个其他脚本都已完成下载,浏览器仍将等待#50执行,然后再执行其他50个脚本(值得注意的例外是脚本具有deferasync属性时)。

此外,使用停滞脚本,您的页面将不会呈现任何内容,只是一个空白的白色页面。这不利于用户体验。是的,我见过这样的代码,你会面对一个空白的白色页面30秒,因为脑子里有十几个脚本决定要慢一些。

仅仅因为浏览器可以做得更快,并不意味着你可以跳过开发人员方面的优化。越快越好,开发人员一直在使用优化来压缩JS的性能。如果你坚持下去,那就最好了。