JavaScript性能优化-----加载和执行

多数浏览器使用单一进程来处理用户界面刷新和JavaScript脚本的执行,所以同一时刻只能做一件事。JavaScript执行时间耗时越久,浏览器等待响应的时间就越长。无论当前的JavaScript代码是内嵌的还是包含在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成。

1.脚本位置:

由于脚本会阻塞页面其他资源的下载,因此推荐将所有的<script>标签尽可能放到<body>标签的底板,以减少对整个页面下载的影响

2.延迟的脚本:

HTML5引入了async属性,用于异步加载脚本,采用并行加载,在下载过程中不会产生阻塞,在加载完成后自动执行,而不是等待页面完成后执行。<script async="async">

3.动态脚本元素:

用DOM方法创建一个script元素,使用动态脚本节点下载文件时,返回的代码会立即执行,当代码包含供页面其他脚本调用的接口时就有问题,这种情况,就要跟踪并确保脚本下载完成且准备就绪。


4.XMLHttpRequest脚本注入:

创建一个XHR对象,然后用他下载JavaScript文件,最后通过创建动态<script>元素将代码注入页面中。


这个方法的优点是可以下载JavaScript代码但不立即执行,同样的代码在所有主流浏览器都能正常工作。

局限性是JavaScript文件必须与所请求的页面处于同样的域,意味着不能从CDN下载。因此大型的WEB应用通常不会采用XHR脚本注入技术

5.小结:

1.在</body>闭合标签之前,将所有的<script>标签放到页面底部,确保在脚本执行前页面已经完成了渲染。

2.合并脚本。页面中的<script>标签越少,加载速度就越快,响应越迅速。

3.多种下载JavaScript的方法:

         <script>标签的async属性

          动态创建的<script>元素下载执行代码

           使用XHR对象下载JavaScript代码并注入页面中

猜你喜欢

转载自blog.csdn.net/proswpualan/article/details/80014663