Renderings
Старые правила на первых визуализаций
Сначала расскажите о некоторых из способов в FileReader H5 и события
метод FileReader
имя
эффект
около()
Читать терминации
readAsBinaryString (файл)
Файл считывается в виде двоичного кодирования
readAsDataURL (файл)
Документ гласил кодирования DataURL
readAsText (файл, [кодировка])
Будет ли читать текстовый файл
readAsArrayBuffer (файл)
Документ гласил ArrayBuffer
события FileReader
имя
эффект
onloadstart
Когда триггер, чтобы начать читать
в процессе
загрузка
onloadend
Читать триггер завершения, независимо от успеха или неудач
в процессе
Когда файл читается успешно завершен триггер
Onboart
Когда прерывание срабатывает
OnError
триггер ошибки
код
Основная идея распределения файла, чтобы прочитать файл для чтения на блок M.
HTML часть
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
<html lang ="en" > <head > <meta charset ="UTF-8" > <title > Document</title > </head > <body > <form > <fieldset > <legend > 分步读取文件:</legend > <input type ="file" id ="File" > <input type ="button" value ="中断" id ="Abort" > <p > <lable > 读取进度:</lable > <progress id ="Progress" value ="0" max ="100" > </progress > </p > </fieldset > </form > <script src ="./loadFile.js" > </script > <script > var progress = document .getElementById('Progress' ); var events = { load: function ( ) { console .log('loaded' ); }, progress: function (percent ) { console .log(percent); progress.value = percent; }, success: function ( ) { console .log('success' ); } }; var loader; document .getElementById('File' ).onchange = function (e ) { var file = this .files[0 ]; console .log(file) loader = new FileLoader(file, events); }; 大专栏 HTML5 FileReader分布读取文件以及其方法简介 r/> document .getElementById('Abort' ).onclick = function ( ) { loader.abort(); } </script > </body > </html >
loadFile.js部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
var FileLoader = function (file, events ) { this .reader = new FileReader(); this .file = file; this .loaded = 0 ; this .total = file.size; this .step = 1024 * 1024 ; this .events = events || {}; this .readBlob(0 ); this .bindEvent(); } FileLoader.prototype = { bindEvent: function (events ) { var _this = this , reader = this .reader; reader.onload = function (e ) { _this.onLoad(); }; reader.onprogress = function (e ) { _this.onProgress(e.loaded); }; }, onProgress: function (loaded ) { var percent, handler = this .events.progress; this .loaded += loaded; percent = (this .loaded / this .total) * 100 ; handler && handler(percent); }, onLoad: function ( ) { var handler = this .events.load; handler && handler(this .reader.result); if (this .loaded < this .total) { this .readBlob(this .loaded); } else { this .loaded = this .total; this .events.success && this .events.success(); } }, readBlob: function (start ) { var blob, file = this .file; ПЧ (file.slice) { BLOB = file.slice (Пуск + Start в этот .step); } в другое { BLOB = File; } это .reader.readAsText (BLOB); } ABORT: функция ( ) { Вар читатель = это .reader; если (считыватель) { reader.abort (); } } }