FileReader abort 事件
abort 事件會在 FileReader 讀取資料中斷時觸發,比如呼叫abort() 方法。
關於事件處理函式註冊,可以參閱如何註冊事件處理函式一章節。
FileReader 更多內容參閱 JavaScript FileReader 一章節。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> var h = { init: function () { var _this = this; document.getElementById("File").onchange = _this.fileHandler; document.getElementById("Abort").onclick = _this.abortHandler; _this.status = document.getElementById("Status"); _this.progress = document.getElementById("Progress"); _this.percent = document.getElementById("Percent"); _this.loaded = 0; //每次讀取1M _this.step = 1024 * 1024; _this.times = 0; }, fileHandler: function (e) { var _this = h; _this.file = this.files[0]; _this.reader = new FileReader(); _this.total = _this.file.size; _this.reader.onloadstart = _this.onLoadStart; _this.reader.onprogress = _this.onProgress; _this.reader.onabort = _this.onAbort; _this.reader.onerror = _this.onerror; _this.reader.onload = _this.onLoad; _this.reader.onloadend = _this.onLoadEnd; //讀取第一塊 _this.readBlob(0); }, readBlob: function (start) { var _this = h; var blob, file = _this.file; _this.times += 1; blob = file.slice(start, start + _this.step + 1); _this.reader.readAsText(blob); }, onLoadStart: function () { var _this = h; }, onProgress: function (e) { var _this = h; _this.loaded += e.loaded; //更新進度條 _this.progress.value = (_this.loaded / _this.total) * 100; }, onAbort: function () { var _this = h; console.log("讀取中斷"); }, onError: function () { var _this = h; }, onLoad: function () { var _this = h; if (_this.loaded < _this.total) { _this.readBlob(_this.loaded); } else { _this.loaded = _this.total; } }, onLoadEnd: function () { var _this = h; }, abortHandler: function () { var _this = h; if (_this.reader) { _this.reader.abort(); } } }; window.onload = function () { h.init(); } </script> </head> <body> <form> <fieldset> <legend>分度讀取檔案:</legend> <input type="file" id="File" /> <input type="button" value="中斷" id="Abort" /> <p> <label>讀取進度:</label> <progress id="Progress" value="0" max="100"></progress> </p> <p id="Status"></p> </fieldset> </form> </body> </html>
為了測試方便,找一個大一點的檔案上傳,然後點選中斷按鈕。
於是 bort 事件觸發,進而列印出對應字串,程式碼執行效果截圖:
點選中斷按鈕之後觸發 click 事件,進而執行事件處理函式中的 abort()方法,中斷讀取。
於是觸發 abort 事件,進而執行對應事件處理函式,列印出上述內容。
相關文章
- FileReader 事件事件
- XMLHttpRequest abort 事件XMLHTTP事件
- JavaScript abort事件JavaScript事件
- FileReader error 事件Error事件
- FileReader loadstart 事件事件
- FileReader 事件用法事件
- XMLHttpRequest abort()XMLHTTP
- JavaScript FileReaderJavaScript
- FileReader readAsText()AST
- FileReader 解析
- 3.3.5 使用Abort模式模式
- Fetch 實現 abort
- FileReader error 屬性Error
- FileReader result 屬性
- FileReader readyState 屬性
- FileReader.readyState 屬性
- thread.Interrupt()與thread.Abort()thread
- 用whistle實現Abort請求
- [轉帖]XACT_ABORT 的問題
- HTML5進階FileReader的使用HTML
- IO流 檔案字元流FileReader、FlieWriter字元
- web前端圖片上傳(3)–filereaderWeb前端
- iOS Abort問題系統性解決方案iOS
- 程式流程的控制 Abort Exit Halt RunError Continue Break SleepError
- FileReader()讀取檔案、圖片上傳預覽
- FileReader初步使用實現上傳圖片預覽效果
- 你有使用過FileReader嗎?說說它有哪些應用場景?
- Element頁面內多個上傳元件 超時使用abort取消請求元件
- Runtime PM 處理不當導致的 external abort on non-linefetch 案例分享
- 前端開發入門到實戰:HTML5進階FileReader的使用前端HTML
- H5 FileReader+drag+ajax2.0+Formdata實現圖片拖拽上傳H5ORM
- Solidity事件,等待事件Solid事件
- 事件 滑鼠事件 表單事件 from表單事件
- 事件流與事件溯源事件
- 事件協作和事件溯源事件
- onscroll 事件和onScrollCapture事件事件APT
- React 事件和 Dom 事件React事件
- js--事件流、事件委託、事件階段JS事件