<b>void readAsArrayBuffer(Blob blob)</b>
• Асинхронно читает данные из объекта
<b>blob</b>
и сохраняет их в свойстве
<b>result</b>
в виде объекта
<b>ArrayBuffer</b>
.
<b>void readAsBinaryString(Blob blob)</b>
Асинхронно читает байты данных из объекта
<b>blob</b>
, преобразует их в двоичную строку и сохраняет ее в свойстве
<b>result</b>
. Каждый «символ» в двоичной строке представлен кодом символа в диапазоне от 0 до 255. Извлекать эти значения байтов можно с помощью метода
<b>String.charCodeAt().</b>
Следует отметить, что двоичные строки являются не самым эффективным представлением двоичных данных: вместо них следует использовать объекты
<b>ArrayBuffer</b>
, когда это возможно.
<b>void readAsDataURL(Blob blob)</b>
Асинхронно читает байты данных из объекта
<b>blob</b>
, преобразует их (учитывая тип объекта
<b>Blob</b>
) в URL-адрес data:// и присваивает полученную строку свойству
<b>result</b>
.
<b>void readAsText(Blob blob, [string encoding])</b>
Асинхронно читает байты данных из объекта
<b>blob</b>
, декодирует их с использованием кодировки encoding в текстовую строку Юникода и затем присваивает полученную строку свойству
<b>result</b>
. Если аргумент
encoding не указан, используется кодировка UTF-8 (текст в кодировке UTF-16 определяется и декодируется автоматически, если он начинается с маркера Byte Order Mark).
Обработчики событий
Подобно всем асинхронным прикладным интерфейсам, в своей работе объект
<b>FileReader</b>
опирается на события. Для регистрации обработчиков событий можно использовать свойства, перечисленные ниже, или методы интерфейса
<b>EventTarget</b>
, реализуемого объектом
<b>FileReader</b>
.
События объекта
<b>FileReader</b>
возбуждаются в самом объекте
<b>FileReader</b>
. Они не всплывают, и для них не предусматриваются действия по умолчанию. Обработчикам событий в объекте
<b>FileReader</b>
всегда передается объект
<b>ProgressEvent</b>
. Успешная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «load» и событие «loadend». Неудачная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «error» или «abort» и событие «loadend».
<b>onabort</b>
Вызывается, если операция чтения была прервана методом
<b>abort().</b>
<b>onerror</b>
Вызывается, если возникла какая-либо ошибка. Свойство error объекта
<b>FileReader</b>
будет ссылаться на объект
<b>FileError</b>
, который имеет свойство code с кодом ошибки.
<b>onload</b>
Вызывается в случае успешного завершения операции чтения объекта
<b>File</b>
или
<b>Blob</b>
. Свойство
<b>result</b>
объекта
<b>FileReader</b>
хранит содержимое объекта
<b>File</b>
или
<b>Blob</b>
в виде, зависящем от использовавшегося метода чтения.
<b>onloadend</b>
Каждый вызов метода чтения объекта
<b>FileReader</b>
в конечном итоге возбуждает событие «load», «error» или «abort». Кроме того, после каждого из этих событий объект
<b>FileReader</b>
возбуждает событие «loadend» для программ, в которых было бы желательно обрабатывать единственное событие вместо трех.
<b>onloadstart</b>
Вызывается после вызова метода чтения, но перед тем как будут прочитаны какие-либо данные.
<b>onprogress</b>
Возбуждается примерно 20 раз в секунду, пока выполняется чтение данных из объекта
<b>File</b>
или
<b>Blob</b>
. Объект
<b>ProgressEvent</b>
позволяет узнать количество прочитанных байтов, а свойство
<b>result</b>
объекта
<b>FileReader</b>
может содержать представление этих байтов.
FileReaderSync
синхронный интерфейс чтения объекта File или Blob
Объект
<b>FileReaderSync</b>
является синхронной версией объекта
<b>FileReader</b>
, доступной только в фоновых потоках выполнения, представленных объектами
<b>Worker</b>
. Синхронный интерфейс проще в использовании, чем асинхронный: достаточно просто создать объект вызовом конструктора
<b>FileReaderSync()</b>
и затем вызвать один из его методов чтения, который либо вернет содержимое объекта
<b>File</b>
или
<b>Blob</b>
, либо возбудит объект
<b>FileError</b>
.
Конструктор
<b>new FileReaderSync()</b>
Новый объект
<b>FileReaderSync</b>
создается с помощью конструктора
<b>FileReaderSync()</b>
, который не требует аргументов.
Методы
Следующие методы возбуждают объект
<b>FileError</b>
, если операция чтения потерпит неудачу по каким-либо причинам.
<b>ArrayBuffer readAsArrayBuffer(Blob blob)</b>
Читает байты из объекта
<b>blob</b>
и возвращает их в виде объекта
<b>ArrayBuffer</b>
.
<b>string readAsBinaryString(Blob blob)</b>