Чтение онлайн

на главную - закладки

Жанры

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

• После окончания операции чтения при необходимости можно повторно использовать объект

FileReader
или удалить его и создать новый.

Синхронный прикладной интерфейс, который можно использовать в фоновых потоках выполнения, описывается в справочной статье

FileReaderSync
.

Конструктор

new FileReader

Новый объект

FileReader
создается с помощью конструктора
FileReader,
который не требует аргументов.

Константы

Следующие

константы определяют возможные значения свойства
readyState
:

unsigned short EMPTY = 0

Метод чтения еще не был вызваню

unsigned short LOADING = 1

Выполняется операция чтенияю

unsigned short DONE = 2

Операция чтения завершилась, успешно или с ошибкой.

Свойства

readonly FileError error

Если ошибка возникнет во время чтения, это свойство будет ссылаться на объект

FileError
, описывающий ошибку.

readonly unsigned short readyState

Это свойство описывает текущее состояние объекта

FileReader
. Его значением будет одна из трех констант, перечисленных выше.

readonly any result

Если операция чтения завершится успешно, это свойство будет хранить содержимое объекта

File
или
Blob
в виде строки или объекта
ArrayBuffer
(в зависимости от использовавшегося метода чтения). Когда свойство
readyState
имеет значение LOADING или когда возбуждается событие «progress», это свойство может хранить неполное содержимое объекта
File
или
Blob
. Если метод чтения еще не был вызван или если возникла ошибка, это свойство будет иметь значение null.

Методы

void abort

Прерывает операцию чтения. Он присваивает свойству

readyState
значение DONE, свойству
result
– значение null и свойству
error
– объект
FileError
со свойством
code
, установленным в значение FileError.AB0RT_ERR. После этого возбуждаются события «abort» и «loadend».

void readAsArrayBuffer(Blob blob)

• Асинхронно читает данные из объекта

blob
и сохраняет их в свойстве
result
в виде объекта
ArrayBuffer
.

void readAsBinaryString(Blob blob)

Асинхронно читает байты данных из объекта

blob
, преобразует их в двоичную строку и сохраняет ее в свойстве
result
. Каждый «символ» в двоичной строке представлен кодом символа в диапазоне от 0 до 255. Извлекать эти значения байтов можно с помощью метода
String.charCodeAt.
Следует отметить, что двоичные строки являются не самым эффективным представлением двоичных данных: вместо них следует использовать объекты
ArrayBuffer
,
когда это возможно.

void readAsDataURL(Blob blob)

Асинхронно читает байты данных из объекта

blob
, преобразует их (учитывая тип объекта
Blob
) в URL-адрес data:// и присваивает полученную строку свойству
result
.

void readAsText(Blob blob, [string encoding])

Асинхронно читает байты данных из объекта

blob
, декодирует их с использованием кодировки encoding в текстовую строку Юникода и затем присваивает полученную строку свойству
result
. Если аргумент encoding не указан, используется кодировка UTF-8 (текст в кодировке UTF-16 определяется и декодируется автоматически, если он начинается с маркера Byte Order Mark).

Обработчики событий

Подобно всем асинхронным прикладным интерфейсам, в своей работе объект

FileReader
опирается на события. Для регистрации обработчиков событий можно использовать свойства, перечисленные ниже, или методы интерфейса
EventTarget
, реализуемого объектом
FileReader
.

События объекта

FileReader
возбуждаются в самом объекте
FileReader
. Они не всплывают, и для них не предусматриваются действия по умолчанию. Обработчикам событий в объекте
FileReader
всегда передается объект
ProgressEvent
. Успешная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «load» и событие «loadend». Неудачная операция чтения начинается с события «loadstart», за которым следует ноль или более событий «progress», событие «error» или «abort» и событие «loadend».

onabort

Вызывается, если операция чтения была прервана методом

abort.

onerror

Вызывается, если возникла какая-либо ошибка. Свойство error объекта

FileReader
будет ссылаться на объект
FileError
, который имеет свойство code с кодом ошибки.

onload

Вызывается в случае успешного завершения операции чтения объекта

File
или
Blob
. Свойство
result
объекта
FileReader
хранит содержимое объекта
File
или
Blob
в виде, зависящем от использовавшегося метода чтения.

onloadend

Каждый вызов метода чтения объекта

FileReader
в конечном итоге возбуждает событие «load», «error» или «abort». Кроме того, после каждого из этих событий объект
FileReader
возбуждает событие «loadend» для программ, в которых было бы желательно обрабатывать единственное событие вместо трех.

onloadstart

Вызывается после вызова метода чтения, но перед тем как будут прочитаны какие-либо данные.

Поделиться:
Популярные книги

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Его огонь горит для меня. Том 2

Муратова Ульяна
2. Мир Карастели
Фантастика:
юмористическая фантастика
5.40
рейтинг книги
Его огонь горит для меня. Том 2

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Совершенно несекретно

Иванов Дмитрий
15. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Совершенно несекретно

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Единственная для темного эльфа 3

Мазарин Ан
3. Мир Верея. Драконья невеста
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Единственная для темного эльфа 3

Жандарм

Семин Никита
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Жандарм

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Наследие Маозари 6

Панежин Евгений
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 6

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита