📜  HTML | DOM 进度事件(1)

📅  最后修改于: 2023-12-03 14:41:51.684000             🧑  作者: Mango

HTML | DOM 进度事件

简介

在前端开发中,DOM(文档对象模型)是用来表示和操作 HTML 或 XML 文档的编程接口。进度事件是 DOM 提供的一种事件类型,用于跟踪资源加载的进度情况。通过进度事件,程序员可以获取资源加载的百分比、速度、剩余时间等信息,从而实现更精细的资源加载控制和用户体验。

进度事件列表

以下是常用的进度事件:

  • loadstart:在资源开始加载时触发,表示资源加载已经开始。
  • progress:在加载过程中持续触发,提供了资源加载的进度信息。
  • load:在资源加载完成时触发,表示资源加载已经完成。
  • loadend:在资源加载结束时触发,不论成功或失败。
  • error:在资源加载发生错误时触发。
  • timeout:在资源加载超时时触发。
使用示例
// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();

// 监听进度事件
xhr.addEventListener('loadstart', function(event) {
  console.log('资源加载已开始');
});

xhr.addEventListener('progress', function(event) {
  if (event.lengthComputable) {
    var percentComplete = event.loaded / event.total * 100;
    console.log('已加载:' + percentComplete.toFixed(2) + '%');
  }
});

xhr.addEventListener('load', function(event) {
  console.log('资源加载已完成');
});

xhr.addEventListener('loadend', function(event) {
  console.log('资源加载已结束');
});

xhr.addEventListener('error', function(event) {
  console.log('资源加载错误');
});

xhr.addEventListener('timeout', function(event) {
  console.log('资源加载超时');
});

// 发送请求
xhr.open('GET', 'https://example.com/image.jpg', true);
xhr.send();
注意事项
  • 进度事件通常与 AJAX 请求和资源加载有关,所以在使用之前需先创建相应的请求对象(如 XMLHttpRequest)。
  • 不同浏览器对进度事件的支持可能存在差异,需要进行兼容性测试。
  • 进度事件的触发顺序可能并不完全按照顺序发生,因此不能依赖事件的顺序进行逻辑处理。

以上是关于 HTML | DOM 进度事件的介绍。进度事件能够提供资源加载的详细信息,帮助开发者实现更好的用户体验和控制加载过程。