当你打开购物网站,你愿意花多久的时间等它加载好所有内容?5秒?10秒?还是20秒?Dynatrace研究表示,大部分人的耐心其实只有3秒钟。3秒内还没有加载出来人们可能会转而选择另一个网站。人们的耐心往往不允许购物网站过多的加载时间。因此对于这些网站来说,这势必会损失大量的销量。此时时间就是金钱。
最近,网站开发工程师Amila Welihinda表示,100ms的延迟会让亚马逊网站的销量下跌1%。对此他表示,其团队正在进行开发,目标是将亚马逊网站的加载时间减半。
图源自推特
经过大量的实践,该团队摸索出了几种优化解决方案:
1.最先加载折叠上方的内容
在去掉部分内容和功能以加载ATF后,网站延迟缩短到了500ms,销售量增加了5%。
2. 采用更好的渲染框架
亚马逊官网采用服务器端渲染,而没有客户端渲染框架。潜在的延迟问题并不能证明这一点。Amila团队一直使用jQuery 1.6.4,但其速度并未达到预期。
3. 追踪关键信息
追踪关键性能指标,从而更加针对性地进行优化。
主要追踪信息:
折叠上方加载内容的时间
显示第一件物品的时间
页面完整显示的时间
加载广告的时间
页面布局就绪的时间
4. 对所有重大变化进行A/B测试
如果网页版本表现不佳,导致销量下降,团队会直接采用旧版本。
5. 删除未使用的补丁
由于亚马逊仍然使用的是IE 10,并不支持Promises。因此团队在IE上进行了优化,而去掉了其他浏览器上的兼容包。
6. 为各浏览器提供不同的bundle
在服务器端识别浏览器(通过浏览器嗅探),并提供针对该浏览器的bundle包。团队可通过模块的文件名(例如:./my-feature.ie.js)定义特定浏览器的功能。
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!
☞