在window.onload与body.onload与document.onready

阅读时长 4 分钟读完

在前端开发中,我们经常需要在文档加载完成后执行 JavaScript 代码。这时候就有三种常用的事件可以选择:window.onloadbody.onload、和 document.ready(也叫做 DOMContentLoaded)。

window.onload

window.onload 事件会在整个页面及其所有资源(如图片、CSS 文件等)都加载完成后才触发。这意味着如果页面中包含大量资源,那么 window.onload 事件可能会被拖延很长时间。

body.onload

body.onload 事件会在页面主体部分的 HTML 文档加载完成后立即触发,而不是等待所有资源都加载完成。它比 window.onload 更快一些,但仍然需要等待整个 HTML 文档加载完成。

document.ready

document.ready 事件仅在 HTML 文档加载完成并解析完毕后即可触发,而不必等待所有资源都加载完成。这使得它比前两者更快,并且可以在页面上使用 jQuery 等库来方便地操作 DOM 元素。

或者使用简写:

值得注意的是,document.ready 事件只有在使用 jQuery 等库时才可用。如果你不使用这些库,你可以使用原生 JavaScript 实现。

原生 JavaScript 实现 document.ready 事件:

指导意义

针对这三种常用的页面加载事件,我们应该根据具体情况选择合适的事件来确保代码能够按预期执行。以及需要了解 document.ready 的本质是通过监听 DOMContentLoaded 事件实现,比 window.onload 更快,而且可以使用 jQuery 等库操作 DOM 元素。

如果你使用 jQuery 等库,建议使用 $(document).ready()$(function(){}),因为它们更方便易读,并且兼容性良好。如果你不使用这些库,则应该使用原生 JavaScript 实现 document.ready 事件。

总之,在前端开发中,了解页面加载事件的差异和使用场景是非常重要的。正确地使用它们将有助于提高用户体验和减少不必要的等待时间。

参考示例代码:

-- -------------------- ---- -------
--------- -----
------
------
  -----------------------
-------
------

  ---------------

  ------- -----------------------------------------------------------
  --------
    -- -- ------ - ------------------- --
    ---------------------------- -
      ----------------- -----------------
    ---
  ---------

  --------
    -- ---- ---------- -- -------------- --
    --------------------------------------------- ---------- -
      ----------------- -----------------
    ---
  ---------

-------
-------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/12260

纠错
反馈