My Little World

为什么尽量将js放页面底部

为什么尽量将js放页面底部

1,js是单线程的,一个时间只能干一件事
2.浏览器是多线程的,一个时候可以并行干多件事
3.一个浏览器打开一个页面,就是一个js线程
4.浏览器的多线线程一般会有:js引擎线程,界面渲染UI线程,浏览器事件触发线程,http请求线程等
5.当我们打开一个页面时,浏览器渲染html文件是从上往下渲染的,
UI引擎会根据html文件里面图片,css等的书写先后顺序依次去download,通过http请求拿到资源即加载结束
但如果碰到js文件,会将js文件先加载,加载结束后通知js引擎线程去执行
6.一旦js文件里面需要请求大量数据或者有对页面DOM的操作,就会造成页面空白或者由于DOM还没有加载完直接报错
7.为避免这样的情况,所以尽量将js放页面底部

哪些js可以不放在底部

1.操作在document.ready之后执行的
2.处理兼容性的文件,例如早期IE兼容H5新增标签的支持文件html5shiv
3.jquery类库,通常引用CDN地址,经压缩后不会很大,而且很大几率已被用户缓存下来