最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js文件的异步加载的方法总结(附代码)

来源:动视网 责编:小采 时间:2020-11-27 19:32:02
文档

js文件的异步加载的方法总结(附代码)

js文件的异步加载的方法总结(附代码):本篇文章给大家带来的内容是关于js文件的异步加载的方法总结(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为什么要异步加载:同步加载会阻塞浏览器的后续处理,即只有当当前文件加载完毕之后才能进行下一步的文件加载(如图
推荐度:
导读js文件的异步加载的方法总结(附代码):本篇文章给大家带来的内容是关于js文件的异步加载的方法总结(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为什么要异步加载:同步加载会阻塞浏览器的后续处理,即只有当当前文件加载完毕之后才能进行下一步的文件加载(如图


本篇文章给大家带来的内容是关于js文件的异步加载的方法总结(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

为什么要异步加载:同步加载会阻塞浏览器的后续处理,即只有当当前文件加载完毕之后才能进行下一步的文件加载(如图像)、渲染、代码执行。如果js中有输出document内容、修改DOM、重定向等行为,就会造成页面阻塞。

什么叫异步加载: 异步加载不会阻塞浏览器的后续操作,即在加载执行js的同时,并行加载其他文件渲染页面。

方法一:async属性
async属性规定js文件一旦可用就会执行,脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)

async 属性仅适用于外部脚本(只有在使用 src 属性时)。

async 属性不能保证执行顺序。

<script type="text/javascript" src="demo_async.js" async="async"></script>

方法二:defer属性
defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。

defer属性表示脚本不会改变文档的内容,浏览器知道它将能够安全地读取文档的剩余部分而不用执行脚本,它将推迟对脚本的解释,直到文档已经显示给用户为止。以便加快处理文档的速度。

只有 Internet Explorer 支持 defer 属性。

<script type="text/javascript" defer="defer"></script>

方法三:动态创建DOM
不要求js同源

这些代码应被放置在标签前(接近HTML文件底部)

这种加载方式在加载执行完之前会阻止 onload 事件的触发,而现在很多页面的代码都在 onload 时还要执行额外的渲染工作等,所以还是会阻塞部分页面的初始化处理。

<script type="text/javascript">
 function downloadJSAtOnload() {
 var element = document.createElement("script");
 element.src = "defer.js";
 document.body.appendChild(element);
 } 
</script>

方法四:onload时动态创建DOM
不要求js同源

这些代码应被放置在标签前(接近HTML文件底部)

这种加载方式不是立即开始异步加载 js ,而是在 onload 时才开始异步加载。这样就解决了阻塞 onload 事件触发的问题。

<script type="text/javascript"> 
function downloadJSAtOnload() { 
var element = document.createElement("script");
 element.src = "defer.js"; 
 document.body.appendChild(element);
 } 
 if (window.addEventListener) 
 window.addEventListener("load", downloadJSAtOnload, false); 
 else if (window.attachEvent) 
 window.attachEvent("onload", downloadJSAtOnload); 
 else window.onload = downloadJSAtOnload;
</script>

文档

js文件的异步加载的方法总结(附代码)

js文件的异步加载的方法总结(附代码):本篇文章给大家带来的内容是关于js文件的异步加载的方法总结(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为什么要异步加载:同步加载会阻塞浏览器的后续处理,即只有当当前文件加载完毕之后才能进行下一步的文件加载(如图
推荐度:
标签: 文档 加载 方法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top