JavaScript. Подробное руководство, 6-е издание, стр. 489

<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>