jQuery 页面完全加载完成事件

在网页开发中,我们经常需要在页面完全加载完成后执行一些操作,比如初始化一些插件、发送请求或者显示动画等。对于这种需求,我们可以使用 jQuery 提供的 $(document).ready() 方法来实现。

$(document).ready() 方法

$(document).ready() 方法是 jQuery 中一个非常常用的方法,它用来在文档加载完成后执行指定的函数。这个方法可以确保在页面的 DOM(文档对象模型)完全加载后再执行代码,这样可以避免在 DOM 还未完全构建完成时就执行操作。

下面是一个简单的示例,演示了如何使用 $(document).ready() 方法:

$(document).ready(function(){
    // 在页面加载完成后执行的代码
    alert("页面加载完成!");
});

在这个示例中,当页面加载完成后会弹出一个提示框显示"页面加载完成!"。

完整加载事件

除了 $(document).ready() 方法外,还有一个事件可以监听页面的完整加载,即 $(window).on('load', function(){})。这个事件在页面的所有资源(包括图片、样式表等)都加载完成后触发。

下面是一个示例,演示了如何使用 load 事件:

$(window).on('load', function(){
    // 当页面所有资源加载完成后执行的代码
    console.log("页面所有资源加载完成!");
});

示例

为了更好地理解 $(document).ready()load 事件的区别,我们来看一个完整的示例。

journey
    title 页面加载过程示例
    section 页面加载
        来自 浏览器 as 浏览器
        来自 服务器 as 服务器
        浏览器 ==> 服务器 : 请求HTML
        服务器 --> 浏览器 : 返回HTML
        浏览器 ==> 服务器 : 请求CSS
        服务器 --> 浏览器 : 返回CSS
        浏览器 ==> 服务器 : 请求JS
        服务器 --> 浏览器 : 返回JS
        浏览器 ==> 服务器 : 请求图片
        服务器 --> 浏览器 : 返回图片
    section $(document).ready()
        浏览器 --> HTML : 构建DOM
        HTML --> CSS : 加载CSS
        CSS --> JavaScript : 加载JS
        JavaScript --> 页面 : 执行 $(document).ready() 中的代码
    section load
        浏览器 --> 页面 : 加载完所有资源
stateDiagram
    [*] --> 页面加载中: 请求HTML
    页面加载中 --> HTML构建完成: 返回HTML
    HTML构建完成 --> CSS加载中: 加载CSS
    CSS加载中 --> JS加载中: 加载JS
    JS加载中 --> 执行 $(document).ready(): JS加载完
    执行 $(document).ready() --> [*] : 页面完全加载完成
    页面完全加载完成 --> 所有资源加载完: 执行 $(window).on('load')
    所有资源加载完 --> [*]: 页面所有资源加载完成

在这个示例中,浏览器首先请求页面的 HTML、CSS、JS 文件以及图片等资源,然后在构建完整的 DOM 结构后执行 $(document).ready() 中的代码,最后在所有资源加载完成后触发 load 事件。

通过上面的示例,我们可以清楚地看到页面加载的整个过程以及 $(document).ready()load 事件的执行时机。

总的来说,$(document).ready() 方法用来在 DOM 加载完成后执行代码,而 load 事件则是在页面所有资源加载完成后才触发。在实际开发中,根据具体需求选择合适的事件来执行相应的操作,可以使页面加载更加流畅和用户体验更好。