前端性能优化-将Scripts放在底部

作者: yitalalww | 来源:发表于2016-09-13 15:15 被阅读321次

原创作品,请勿抄袭,翻版必究。转载请注明作者。

简介

在上面篇文章中我已经提到,web页面中将CSS放在底部会导致载网速低的情况下页面逐渐呈现阻塞,导致“白屏”,应该将CSS引用放在顶部。而对于JavaScript文件,相反,应该放在底部。

原理

HTML中script有两个属性,async是异步执行,表示下载完js马上异步执行js,不阻塞浏览器呈现。defer表示延迟执行,需要等页面资源下载完成后执行,相当于放在尾部。既没有async和defer的属性,页面将在下载后阻塞呈现立即执行。 相信看到这篇文章的大部分同学,都没有使用到defer和async。这种情况下JavaScript文件放在顶部会导致页面呈现阻塞。

同样,来看看天猫首页的脚本情况

天猫在html中相当一部分使用了async的,这里有他特殊的使用之处,基本是数据的获取,不会对页面布局有改动,我对它的使用不是清楚,如果谁知道,望告知我。

上面我们说了script的async和defer两个属性,以及没有这两个属性的情况下,脚本阻塞页面呈现,导致“白屏”。下面我们重点看下没有这个两个属性的情况。

引用http://stevesouders.com/hpws/move-scripts.php的例子(demo是前辈大神的,我只是借来用用)。

页面中嵌了2个iframe,左边的是把脚本放在top的情况,右边是脚本放在底部的情况。

上面两张图可见脚本放在顶部会导致页面呈现阻塞,在网速慢的时候导致“白屏”,直到脚本下载完毕,页面才继续呈现。脚本放在底部则可以让页面尽快呈现。前端的性能优化必须对这些细节非常注意,变量引起质变,如果每个地方你都极尽最佳性能,你开发出来的网站性能将会尤其突出。

我会不断的推出前端性能优化的各种方法(每周一至二篇文章),站在巨人的肩膀上,加上我个人的亲自测试和研究,用图文并茂的方式向大家介绍。请大家关注我。

第一篇,前端性能重要性

第二篇,前端性能优化-HTTP添加Expires头

第三篇,前端性能优化-对HTTP传输进行压缩

第四篇,前端性能优化-将CSS文件放在顶部

第五篇,前端性能优化-将Scripts放在底部

相关文章

  • 前端性能优化-将Scripts放在底部

    原创作品,请勿抄袭,翻版必究。转载请注明作者。 简介 在上面篇文章中我已经提到,web页面中将CSS放在底部会导致...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • Web页面性能优化项

    Web页面性能优化项: 将样式表放在顶部,将脚本放在底部;使用浏览器缓存;使目标网页重定向可缓存;内嵌小型 CSS...

  • 前端性能优化(上)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 为什么要进行前端性能...

  • 前端性能优化-将CSS文件放在顶部

    原创作品,请勿抄袭,翻版必究。转载请注明作者。 简介 在web页面设计中,一般在HTML中不直接写样式,而是通过l...

  • 前端性能优化汇总

    前端优化一直是前端开发人员要掌握的内容目前汇总一下实践中优化的手段 目录结构 样式文件放在头部,js文件放在底部,...

  • 前端面试必问及加分点---性能优化篇

    如何进行网站性能优化 你有用过哪些前端性能优化的方法? 谈谈性能优化问题 代码层面的优化 前端性能优化最佳实践

  • 前端性能优化

    对于前端的性能优化,主要有分为加载优化和性能优化。在Google官方文档中,给出了性能优化有哪些好处。前端优化的最...

  • 常用的后端性能优化六种方式:缓存化+服务化+异步化等

    性能优化专题 前端性能优化 数据库性能优化 jvm和多线程优化 架构层面优化 缓存性能优化 常用的后端性能优化六大...

网友评论

  • 924ff07be3e4:"defer表示延迟执行,需要等页面资源下载完成后执行,相当于放在尾部"

    以下来自 mdn :

    defer
    This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing DOMContentLoaded.

    but before firing DOMContentLoaded (加粗)
  • c02585b16f8a:还不错
  • yitalalww:原号弃用,重新来过!大家帮忙顶上去!

本文标题:前端性能优化-将Scripts放在底部

本文链接:https://www.haomeiwen.com/subject/syvmettx.html