iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >javascript如何按顺序加载运行js方法
  • 133
分享到

javascript如何按顺序加载运行js方法

2024-04-02 19:04:59 133人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关javascript如何按顺序加载运行js方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。浏览器会异步加载 javascript 文件,但是

这篇文章将为大家详细讲解有关javascript如何按顺序加载运行js方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

浏览器会异步加载 javascript 文件,但是会按照引用文件中的书写顺序从上到下执行解析 javascript

Defer属性标记

defer是html4.0中定义的,该属性使得浏览器能延迟脚本的执行,等文档完成解析完成后会按照他们在文档出现顺序再去下载解析。

也就是说defer属性的 script 就类似于将 script 放在body中的加载 效果一致.

但是defer属性在各个浏览器中支持程度有点不同,就是说,有的浏览器不完全支持.

Async属性标注

async是HTML5新增的属性, 大部分先进支持该属性的.
该属性的作用是让脚本能异步加载,也就是说当浏览器遇到async属性的 script 时浏览器加载CSS一样是异步加载的

javascript 动态加载js文件

原理很简单,创建一个 script 节点,给节点赋予 script 的属性,然后 append 到 dom 的 head 标签中.

function loadJS(url){
  var Script = document.createElement('script');
  Script.setAttribute('src', url);
  Script.setAttribute('type', 'text/javascript');
  document.body.appendChild(Script);
  return Script;
}

如果我们同时加载多个 javascript 文件

loadJS('a.js');
loadJS('b.js');

上面的效果是,a.js 和 b.js 文件会被异步同时加载,如果 b.js 文件比 a.js 文件小的话,很可能先加载执行 b.js ,完全不会按照书写结果加载执行

所以,如果你的 b.js 文件有依赖 a.js 的东西,那么就会报错,因为解释执行b.js 的时候,a.js 还在加载中.

控制javascript 加载执行顺序

我们对代码做如下改进

function loadJS(url, success) {
      var domScript = document.createElement('script');
      domScript.src = url;
      success = success || function () {
          };
      domScript.onload = domScript.onreadystatechange = function () {
        if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
          success();
          this.onload = this.onreadystatechange = null;
          this.parentnode.removeChild(this);
        }
      }
      document.getElementsByTagName('head')[0].appendChild(domScript);
    }

通过script 节点上的 onload 和 onreadystatechange 属性来监听节点 src 是否加载完成

如果成功,调用回调函数 success();

我们在调用此方法的时候,可以通过 loadJS 回调函数来知道当前节点已经加载完成,然后在回调函数里继续加载其他 script 文件

loadJS(getUrl('a.js'), function () {
      loadJS(getUrl('b.js'), function () {
        console.log('a.js ,b.js 加载完成');
      });
});

通过上面的方法加载,是一种同步阻塞加载, a.js 加载完成后才会加载执行 b.js 文件.

如果你的 javascript 文件没有相互依赖关系,不要使用这种方法.

关于“javascript如何按顺序加载运行js方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: javascript如何按顺序加载运行js方法

本文链接: https://www.lsjlt.com/news/78869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript如何按顺序加载运行js方法
    这篇文章将为大家详细讲解有关javascript如何按顺序加载运行js方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。浏览器会异步加载 javascript 文件,但是...
    99+
    2024-04-02
  • 如何顺序运行 golang 测试?
    学习Golang要努力,但是不要急!今天的这篇文章《如何顺序运行 golang 测试?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助...
    99+
    2024-04-04
  • 让线程顺序运行的11种方法
    一、让线程顺序运行的11种方法 1 方法说明 使用线程的join方法使用主线程的join方法使用线程的wait方法使用线程的线程池方法使用线程的Condition(条件变量)方法使用CountDown...
    99+
    2023-09-26
    java
  • SpringBoot bean如何查询加载顺序
    这篇“SpringBoot bean如何查询加载顺序”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBo...
    99+
    2023-07-05
  • javascript之加载顺序与执行原理的示例分析
    这篇文章主要为大家展示了“javascript之加载顺序与执行原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript之加载顺序与执行原...
    99+
    2024-04-02
  • java如何查看jar包加载顺序
    目录查看jar包加载顺序查看具体的class从哪个jar保重加载的jar包中类的加载顺序(类名冲突)javac是用来编译*.java文件的在windows下,多个jar包用分号隔开查...
    99+
    2024-04-02
  • Java让多线程按顺序执行的几种方法
    目录在子线程中通过join()方法指定顺序在主线程中通过join()方法指定顺序通过倒数计时器CountDownLatch实现通过创建单一化线程池newSingleThreadExe...
    99+
    2024-04-02
  • axuer如何看内联框架加载顺序
    本篇内容介绍了“axuer如何看内联框架加载顺序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!axuer看内联框架加载顺序打开Axure软件...
    99+
    2023-07-06
  • js中如何使用递归与promise按顺序请求数据
    小编给大家分享一下js中如何使用递归与promise按顺序请求数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar...
    99+
    2024-04-02
  • PHP 魔术方法的执行顺序如何遵循?
    php 魔术方法的执行顺序遵循以下规则:优先级高的魔术方法优先执行。如果子类和父类都定义了同名的魔术方法,则优先执行子类的魔术方法。如果一个类既定义了一个常规方法,又定义了同名的魔术方法...
    99+
    2024-04-17
    php 魔术方法
  • jQuery中$.getScript方法如何加载javaScript文档
    这篇文章将为大家详细讲解有关jQuery中$.getScript方法如何加载javaScript文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.两个文件的代码如下:...
    99+
    2024-04-02
  • javascript预加载图片、css、js的方法示例介绍
    预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片、css、js这些静态文件可以被缓存),如果用户访问的页面里面的css、js、图片被预加载了,用户打开页面...
    99+
    2022-11-15
    javascript 预加载图片
  • js无法运行php如何解决
    今天小编给大家分享一下js无法运行php如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。js无法运行php的解决办法:...
    99+
    2023-07-04
  • JS如何实现图片预加载之无序预加载功能
    这篇文章主要介绍JS如何实现图片预加载之无序预加载功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!图片预加载之无序预加载的效果图如下所示,如果大家感觉不错,请参考实现代码。具体代码...
    99+
    2024-04-02
  • JavaScript如何实现异步任务循环顺序执行
    今天小编给大家分享一下JavaScript如何实现异步任务循环顺序执行的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。需求场景...
    99+
    2023-07-05
  • php如何执行js方法
    这篇文章给大家分享的是有关php如何执行js方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php执行js方法:首先创建好js代码内容;然后在PHP中通过“echo "<script type=...
    99+
    2023-06-20
  • JavaScript如何对字符串和数字进行加法运算
    本篇内容主要讲解“JavaScript如何对字符串和数字进行加法运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript如何对字符串和数字进行加法...
    99+
    2024-04-02
  • php无法加载js和css如何解决
    本篇内容介绍了“php无法加载js和css如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、原因代码错误代码错误可能是php无法加载...
    99+
    2023-07-05
  • 如何在Python中加载和运行ONNX模型
    要在Python中加载和运行ONNX模型,您可以使用ONNX Runtime库。以下是一些简单的步骤来加载和运行ONNX模型: 首...
    99+
    2024-04-02
  • javascript如何实现算术加法运算
    这篇文章主要介绍“javascript如何实现算术加法运算”,在日常操作中,相信很多人在javascript如何实现算术加法运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作