首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js init 加载顺序

在JavaScript中,init通常指的是初始化函数或初始化过程,用于在应用程序或页面加载时执行必要的设置和配置。init函数的加载顺序取决于它在代码中的位置以及浏览器的执行机制。以下是一些关于init加载顺序的基础概念和相关信息:

基础概念

  1. 脚本加载顺序
    • 内联脚本:在HTML元素中直接定义的脚本,按照它们在文档中的出现顺序执行。
    • 外部脚本:通过<script src="..."></script>引入的脚本,按照它们在文档中的出现顺序加载和执行。
  • DOMContentLoaded事件
    • 当HTML文档被完全加载和解析完成后,DOMContentLoaded事件会被触发,不需要等待样式表、图片和子框架的加载。
  • window.onload事件
    • 当整个页面及所有依赖资源如样式表和图片都已完成加载时,window.onload事件会被触发。

init函数的加载顺序

  1. 内联脚本中的init
    • 如果init函数定义在内联脚本中,它会在脚本执行时立即运行。
  • 外部脚本中的init
    • 如果init函数定义在外部脚本中,它会在脚本文件加载并执行时运行。
  • 事件监听器中的init
    • 如果init函数被绑定到DOMContentLoadedwindow.onload事件上,它会在相应的事件触发时运行。

示例代码

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Init Example</title>
    <script>
        // 内联脚本中的init
        function initInline() {
            console.log('Inline init function called');
        }
        window.onload = initInline;
    </script>
    <script src="external.js"></script>
</head>
<body>
    <h1>Init Example</h1>
    <script>
        // 内联脚本中的init
        function initBody() {
            console.log('Body init function called');
        }
        document.addEventListener('DOMContentLoaded', initBody);
    </script>
</body>
</html>

external.js文件内容:

代码语言:txt
复制
// 外部脚本中的init
function initExternal() {
    console.log('External init function called');
}
window.onload = function() {
    initExternal();
};

加载顺序解释

  1. 内联脚本
    • initInline函数绑定到window.onload事件,将在页面完全加载后执行。
  • 外部脚本
    • initExternal函数也绑定到window.onload事件,将在页面完全加载后执行。
  • DOMContentLoaded事件
    • initBody函数绑定到DOMContentLoaded事件,将在HTML文档完全加载和解析完成后立即执行。

输出顺序

  1. initBody(DOMContentLoaded事件触发)
  2. initInlineinitExternal(window.onload事件触发)

注意事项

  • 如果多个init函数绑定到同一个事件,它们会按照绑定的顺序依次执行。
  • 如果init函数中有异步操作(如AJAX请求),需要确保这些操作在适当的时机执行。

解决常见问题

  • init函数未执行
    • 确保脚本文件正确加载,没有404错误。
    • 确保init函数在正确的事件上绑定,或者在正确的位置定义和调用。
  • init函数执行顺序问题
    • 使用DOMContentLoadedwindow.onload事件来控制执行时机。
    • 确保脚本按照正确的顺序加载和执行。

通过理解这些基础概念和示例代码,你可以更好地控制和管理init函数的加载顺序,确保应用程序或页面在加载时正确初始化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HTML加载顺序

基于相关的调研, 我的理解为, 对于一个URI请求, 浏览器会按照下面的请求和执行顺序进行: 一个线程对DOM进行下载(也就是html, 而不去管html中的外部资源) 另外一个线程会开始分析已经下载的...3: 6 Opera 9.26: 4 Opera 9.5 beta: 4 Safari 3.0.4 Mac/Windows: 4 IE 7: 2 IE 8: 6 所以请根据这个实际情况来思考上面的下载顺序...然后我们看执行顺序(js的执行, css的应用等): 只要浏览器"看到了"了js代码,它就会执行 浏览器是从下到下,一行一行地执行 如果js代码位于一个函数或者对象中,则只有当函数或者对象被调用时才会执行...: 首先下载html 从上到下依次下载外部文件(js,css,img) 各个资源的下载顺序是并行的 你可能会奇怪如果js可以并行下载,那么可能位于DOM下面的代码会先执行, 首先可以肯定的是 即使下面的...js先完成下载,也不会影响到整体的从上到下的执行顺序,浏览器会维护这种顺序的关系, chrome的这种方式也是未来浏览器的一种趋势, 而这也是为什么chrome能够更快的原因之一.

1.9K30
  • 一文读懂 Golang init 函数执行顺序

    文章目录 1.init 函数简介 2.执行顺序 2.1 单个源文件的 init 执行顺序 2.2 单个包的 init 执行顺序 2.3 main 包导入多个包时 init 执行顺序 2.3.1 不存在依赖...a init b init c main 结论: 同一个源文件的 init 函数执行顺序与其定义顺序一致,从上到下。...2.4 包级变量初始化与 init 函数执行顺序 如果包中存在包级变量,那么其初始化与 init 函数执行先后顺序如何呢?...程序中如果在不同包的不同源文件有多个 init 函数时,其执行顺序可概述为: 同一个源文件的 init 函数执行顺序与其定义顺序一致,从上到下; 同一个包中不同文件的 init 函数的执行顺序按照文件名的字典序...调用顺序为最后被依赖的最先被初始化,如导入顺序 main > a > b > c,则初始化顺序为 c > b > a > main,依次执行对应的 init 方法; 如果包存在包级变量,则先于包的 init

    7.4K44

    Java类加载的顺序

    前言 那一年,呼延十又回想起被加载顺序支配的恐惧,笔试题上,好几个类,几个方法,几个输出语句,让你按照顺序写出输出.我真的是有一句…. 但是呢,我们还是有了解一下的必要的,在编码过程中有许多的应用....正文 经常用来比较顺序的,无非就是静态代码块,普通代码块,静态方法和普通方法. 这里直接说一下结论: 先静态后普通最后构造方法,先父类后子类....由于B类有父类,因此先加载A类. 加载A类的静态代码块,输出A-----static. 加载B类的静态变量,调用了方法,输出B----- static func....加载A类的构造方法,输出A----- constructor. 加载B类的普通变量,调用了方法,输出B----- default. 加载B类的构造方法,输出了B----- constructor....静态变量,静态代码块的加载顺序只和代码编写的顺序有关. 普通变量及构造方法,顺序一定是先普通变量,再构造方法的. 说好的应用呢 其实我目前对这个知识点应用最多的就是静态代码块.

    1.3K20

    异步加载脚本保持执行顺序

    首先是外部脚本和行内脚本,对于异步加载的脚本,会导致竞争状态,使得出现未定义的错。...Onload之前下载执行就可以保持执行顺序。 运行结果: ?...3.定时器: 采用轮询方法来抱着在行内脚本执行之前所依赖的外部脚本已经加载。 运行结果: ?...由于脚本没有按顺序执行,出现未定义的错误。 解决方法1:Managed XHR 通过EFWS.Script模块封装了一种技术,将XHR响应加入队列来保证它们按顺序执行。...代码: /* 数组queuedScripts存储执行队列中的脚本,每个脚本是拥有三个属性的对象: response: XHR响应 onload: 脚本加载后触发的函数 bOrder: 如果该脚本需要依赖其他脚本按顺序执行

    1.8K20

    Spring Boot启动加载顺序详解

    Spring Boot应用的启动过程看似简单,但其中涉及了复杂的初始化和加载机制。本文将深入剖析Spring Boot的启动流程,了解其自动配置、引导启动和源码运行等 every detail。...二、SpringApplication启动流程剖析SpringApplication类提供了一站式服务来引导启动整个Spring Boot程序,其中封装了很多启动时的初始化和加载逻辑。1....,我们可以看到启动的关键步骤都出现了,包括监听器、环境、应用上下文的准备,其中隐含了复杂的加载机制。...加载自动配置类AutoConfigurationImportSelector通过getAutoConfigurationEntry()方法加载自动配置类:protected AutoConfigurationEntry...总结至此,我们剖析完了Spring Boot应用启动和自动配置的整个过程,可以看到其内部对容器上下文环境的构建进行了精心设计,使得应用能够顺利启动并加载所需的Bean。

    4K91

    Spring Boot 配置加载顺序详解

    在 Spring Boot 里面,可以使用以下几种方式来加载配置。本章内容基于 Spring Boot 2.0 进行详解。...1、properties文件; 2、YAML文件; 3、系统环境变量; 4、命令行参数; 等等…… 配置属性加载的顺序如下: 1、开发者工具 `Devtools` 全局配置参数; 2、单元测试上的 `...)`) 15、JAR包里面的配置文件参数(`application.properties(YAML)`) 16、`@Configuration`配置文件上 `@PropertySource` 注解加载的参数...17、默认参数(通过 `SpringApplication.setDefaultProperties` 指定); 数字小的优先级越高,即数字小的会覆盖数字大的参数值,我们来实践下,验证以上配置参数的加载顺序...了解了 Spring Boot 各种配置的加载顺序,如果配置被覆盖了我们就知道是什么问题了。

    2.6K40
    领券