XMLHttpRequestEventTarget: timeout 事件

注意:此功能在 Web Workers 中可用,但 Service Workers 除外。

當預設時間過期導致進度終止時,會觸發 timeout 事件。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("timeout", (event) => { })

ontimeout = (event) => { }

事件型別

一個 ProgressEvent。繼承自 Event

Event ProgressEvent

事件屬性

除了下面列出的屬性之外,父介面 Event 的屬性也可使用。

lengthComputable 只讀

一個布林值,指示底層程序的待完成總工作量以及已完成工作量的可計算性。換句話說,它告知進度是否可衡量。

loaded 只讀

一個 64 位無符號整數值,表示底層程序已完成的工作量。透過將此屬性的值除以 total,可以計算出已完成工作的比例。使用 HTTP 下載資源時,此值僅包含 HTTP 訊息的正文,不包括標頭和其他開銷。

total 只讀

一個 64 位無符號整數,表示底層程序正在執行的總工作量。使用 HTTP 下載資源時,這對應於 Content-Length(訊息正文的大小),不包括標頭和其他開銷。

示例

與 XMLHttpRequest 的用法

js
const client = new XMLHttpRequest();
client.open("GET", "http://www.example.org/example.txt");
client.ontimeout = () => {
  console.error("Timeout!!");
};

client.send();

您還可以使用 addEventListener() 方法設定事件處理程式。

js
client.addEventListener("timeout", () => {
  console.error("Timeout!!");
});

與 XMLHttpRequestUpload 的用法

您可以使用 timeout 事件來檢測因速度過慢而停止的上傳。有關上傳檔案並顯示進度條的完整程式碼示例,請參見主 XMLHttpRequestUpload 頁。

超時在 XMLHttpRequest 物件上使用 XMLHttpRequest.timeout 屬性進行設定。

js
// In case of an timeout we hide the progress bar
// Note that this event can be listened to on the xhr object too
function errorAction(event) {
  progressBar.classList.remove("visible");
  log.textContent = `Upload failed: ${event.type}`;
}
xhr.upload.addEventListener("timeout", errorAction);

規範

規範
XMLHttpRequest
# event-xhr-timeout
XMLHttpRequest
# handler-xhr-ontimeout

瀏覽器相容性

api.XMLHttpRequest.timeout_event

api.XMLHttpRequestUpload.timeout_event

另見