深入理解 JS 中的加载事件
JavaScript 中的加载事件指的是在加载 HTML 页面时出发的一系列事件,用于确保在执行 JavaScript 代码之前,页面的各个部分皆已经准备好了。理解这些事件可以有效避免页面运行错误,提高代码的可靠性。
DOMContentLoaded
DOMContentLoaded 事件是当 HTML 文档被完全加载和解析后执行的事件,不必等待 CSS 文件、图片和其他资源进行加载。它是最常用的 JavaScript 加载事件之一。
document.addEventListener('DOMContentLoaded', function () {
// code here
});
以上代码片段把一个匿名函数绑定到 document 的 DOMContentLoaded 事件上,当 DOMContentLoaded 事件被触发时该函数就会被执行。在这个函数中可以进行一些操作,如采集页面状态等。
load
load 事件则是当 HTML 页面全部加载完毕时触发的事件,包括 CSS、JavaScript、图片等所有资源都已经被下载和解析完毕。因此,load 事件会等待相对较长的时间,只有在上述所有资源全部准备好时才会被触发。
window.addEventListener('load', function () {
// code here
});
以上代码片段把一个匿名函数绑定到 window 的 load 事件上,当 load 事件被触发时该函数就会被执行。在这个函数中可以进行与页面资源加载完毕相关的操作,如显示页面之类的内容。
示例说明
下面的示例演示了加载事件的一个常见用途,确保 JavaScript 代码仅在 DOM 完全加载后执行。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS Loading Event Example</title>
<script src="main.js"></script>
</head>
<body>
<p>Hello World</p>
</body>
</html>
JavaScript 文件中的代码如下:
document.addEventListener('DOMContentLoaded', function () {
var p = document.querySelector('p');
p.style.color = 'red';
});
以上代码将 p 元素的颜色设置为红色。因为这段代码被绑定到了 DOMContentLoaded 事件上,只有在 DOM 完全加载后它才会被执行,从而确保了代码的正确性。
另一个示例是一个简单的等待动画,在页面全部加载完成之前显示,提高用户体验。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS Loading Event Example</title>
<link rel="stylesheet" href="loading.css" />
<script src="main.js"></script>
</head>
<body>
<div class="loading">loading...</div>
<p>Hello World</p>
</body>
</html>
CSS 文件中定义了 loading 的样式:
.loading {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.8);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
}
JavaScript 代码如下:
window.addEventListener('load', function () {
var loading = document.querySelector('.loading');
loading.style.display = 'none';
});
以上代码将 loading 元素的 display 属性设置为 none,在页面全部加载完成后即可移除该元素并显示主体内容,提高用户体验。
综上所述,了解和理解 JavaScript 中的加载事件可以帮助我们在编写 JavaScript 代码时更加严谨,提高代码的可靠性和用户体验。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入理解js中的加载事件 - Python技术站