时间:2021-07-01 10:21:17 帮助过:25人阅读
项目中经常会遇到这样的问题:当某个 js 脚本加载完成后再执行相应任务,但很多朋友可能并不知道怎么判断我们要加载的 js 文件是否加载完成,如果没有加载完成我们就调用 js 文件里面的函数是不会成功的。本文主要讲解怎么在成功加载 js 文件后再执行相应回调任务。
基本思路
我们可以动态的创建 <script>
元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢?因为有些函数需要在脚本加载完成才能调用。IE 浏览器中可以使用 <script>
元素的 onreadystatechange
来监控加载状态的改变,并通过判断它的 readyState 是 loaded 或 complete 来判断脚本是否加载完成。而非 IE 浏览器可以使用 onload 来直接判断脚本是否加载完成。
动态脚本简单示例
一个 简单 的实现过程如下:
原理很简单,根据这两个简单的原理,我们进行一些修改,我把改成了两个函数,分别是 串行加载 和 并行加载 。
串行和并行动态脚本
当传一个包含多个JS文件路径的数组时,串行加载函数从第一个脚本文件加载开始,每加载成功一个便开始加载下一个脚本文件,全部加载完成后执行回调函数。而并行加载是一开始便加载全部的脚本文件,也就是他们从同一点开始加载,当全部加载完成后,执行回调函数。
在这里是把 <script>
标签动态的插入到页面中的 <head>
标签内部,并且加载完成后标签元素会被自动移除。
使用方法
这里声明了一个数组变量,里面包含了两个远程的JS文件地址(当然 <script>
标签调用脚本是支持跨域的):
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
vue的mixins属性详解
vue2.0模拟锚点的实例
Vue使用mixins实现压缩图片代码
以上就是利用JS脚本加载后如何实现能执行相应回调函数的详细内容,更多请关注Gxl网其它相关文章!