HTML5 是一種網頁開發技術,它具有許多功能,其中一項是實現下載進度,這是非常有用的功能。在下面的 pre 標簽中顯示的示例代碼可以幫助你快速實現下載進度功能。
var xhr = new XMLHttpRequest(); xhr.open('GET', 'file.mp3', true); xhr.responseType = 'blob'; xhr.addEventListener("progress", function(event) { if (event.lengthComputable) { var percentComplete = event.loaded / event.total; console.log(percentComplete); } else { console.log('Unable to compute progress information since the total size is unknown'); } }); xhr.onload = function(event) { if (this.status === 200) { var blob = this.response; var link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = 'file.mp3'; link.click(); } }; xhr.send();
這段代碼創建了一個 XMLHttpRequest 對象,該對象可用于發送 HTTP 請求。在這種情況下,我們正在從服務器上下載一個名為 file.mp3 的文件。我們將 responseType 屬性設置為 "blob",這將返回二進制數據而不是普通文本。
在這段代碼中實現的重點是 progress 事件。這個事件被觸發時,它將接收到一個對象參數,其中包含了有關下載進度的信息。我們可以使用這些信息計算當前下載的百分比,并在控制臺中顯示。
一旦文件被完全下載,我們使用 Blob 對象和 createObjectURL() 方法創建一個可下載的鏈接。createObjectURL() 方法將返回一個 URL,該 URL 可以使用a
元素上的 download 屬性下載文件。這是通過調用link.click()
實現的。
HTML5 的功能非常強大,并有許多功能可以用于創建豐富的網頁應用程序。通過使用上述代碼,你可以實現一個具有下載進度的文件下載功能。