js怎么动态加载js文件(JavaScript性能优化篇)

 时间:2024-10-16 11:38:18

1、【基本优化】将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂的。

js怎么动态加载js文件(JavaScript性能优化篇)

3、【无堵塞加载JS】通过给script标签增加 defer属性或者是 async 属性来实现<script src="file.js" defer></script>注解:async和defer不同之处是async加载完成后会自动执行脚本,defer加载完成后需要等待页面也加载完成才会执行代码

js怎么动态加载js文件(JavaScript性能优化篇)

5、谷歌浏览器运行效果,script被动态创建在head中

js怎么动态加载js文件(JavaScript性能优化篇)

6、建议大家可以封装成类库,单独引入。该原理实现的也有很多不错的js类库可以使用,如LazyLoad.js,支持数组的形式引入,打开浏览器在network中可看到js是同步加载的

js怎么动态加载js文件(JavaScript性能优化篇)

7、【XHR加载】使用ajax方式加载代码:var xhr = new XMLHttpRequest; xhr.open('get','file.枣娣空郅js',true); xhr.onreadystatechange = function(){ if( xhr.readyState == 4 ){ if( xhr.status >=200 && xhr.status < 300 || xhr.status == 304 ){ var script = document.createElement('script'); script.type = 'text/javascript'; script.text = xhr.responseText; document.body.appendChild(script); } } }; xhr.send(null);

8、【总结】最好的方式还是使用动态创建script的方式加载,当动态创建script,浏览器会分配一个线程去下载src指向的资源,多个script也是同步下载的

  • 迷你世界怎么种庄稼
  • 迷你世界水桶怎么装水
  • 迷你世界驯服的野人怎么让他干活
  • 迷你世界怎样获得绿色毛料
  • 迷你世界怎样制作红衫木板
  • 热门搜索
    bm和弦怎么按 我的世界怎么回血 脚扭伤了怎么办 脾虚肾虚怎么调理 考研政治怎么复习 梁宏达事件是怎么回事 孩子不爱吃饭怎么办 qq号怎么申请 红烧带鱼怎么做 怎么清除浏览器缓存