1. 面向开发者的 Web 技术
  2. Web API
  3. XMLHttpRequestEventTarget
  4. progress 事件

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

progress 事件

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

progress 事件会在请求接收到数据的时候被周期性触发。

Bubbles No
Cancelable No
Interface ProgressEvent
Event handler property onprogress

示例

在线示例

HTML

html
<div class="controls">
 <input
 class="xhr success"
 type="button"
 name="xhr"
 value="Click to start XHR (success)" />
 <input
 class="xhr error"
 type="button"
 name="xhr"
 value="Click to start XHR (error)" />
 <input
 class="xhr abort"
 type="button"
 name="xhr"
 value="Click to start XHR (abort)" />
</div>
<textarea readonly class="event-log"></textarea>
.event-log {
 width: 25rem;
 height: 4rem;
 border: 1px solid black;
 margin: 0.5rem;
 padding: 0.2rem;
}
input {
 width: 11rem;
 margin: 0.5rem;
}

JS

js
const xhrButtonSuccess = document.querySelector(".xhr.success");
const xhrButtonError = document.querySelector(".xhr.error");
const xhrButtonAbort = document.querySelector(".xhr.abort");
const log = document.querySelector(".event-log");
function handleEvent(e) {
 log.textContent =
 log.textContent + `${e.type}: ${e.loaded} bytes transferred\n`;
}
function addListeners(xhr) {
 xhr.addEventListener("loadstart", handleEvent);
 xhr.addEventListener("load", handleEvent);
 xhr.addEventListener("loadend", handleEvent);
 xhr.addEventListener("progress", handleEvent);
 xhr.addEventListener("error", handleEvent);
 xhr.addEventListener("abort", handleEvent);
}
function runXHR(url) {
 log.textContent = "";
 const xhr = new XMLHttpRequest();
 addListeners(xhr);
 xhr.open("GET", url);
 xhr.send();
 return xhr;
}
xhrButtonSuccess.addEventListener("click", () => {
 runXHR("dgszyjnxcaipwzy.jpg");
});
xhrButtonError.addEventListener("click", () => {
 runXHR("https://somewhere.org/i-dont-exist");
});
xhrButtonAbort.addEventListener("click", () => {
 runXHR("dgszyjnxcaipwzy.jpg").abort();
});

结果

规范

规范
XMLHttpRequest
# event-xhr-progress
XMLHttpRequest
# handler-xhr-onprogress

浏览器兼容性

api.XMLHttpRequest.progress_event

api.XMLHttpRequestUpload.progress_event

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /