Книга: JavaScript. Подробное руководство, 6-е издание
ProgressEvent
ProgressEvent
событие продолжения загрузки, выгрузки или чтения файла (Event)
Все объекты - ApplicationCache, FineReader
и XMLHttpRequest
(версия 2) - возбуждают события, чтобы известить приложение о ходе выполнения операций передачи данных, таких как загрузка/выгрузка по сети или чтение файла. События этого рода известны как события хода выполнения операции, но только одно из них носит имя «progress». Другие события из этой категории, возбуждаемые объектами FineReader
и XMLHttpRequest
, - это события «loadstart», «load», «loadend», «error» и «abort».
Объект XMLHttpRequest
также возбуждает событие «timeout». Объект ApplicationCache
возбуждает несколько разных событий, имеющих отношение к ходу выполнения операции и описываемых здесь, но только одно из них носит имя «progress». Эти события возбуждаются в последовательности, которая начинается с события «loadstart» и всегда заканчивается событием «loadend». Непосредственно событию «loadend» предшествует событие «load», «error» или «abort», в зависимости от успеха выполнения операции. Между начальным «loadstart» и двумя заключительными событиями возбуждается ноль или более событий (с названием «progress»). (Объект ApplicationCache
генерирует иную последовательность событий, но и он возбуждает событие «progress» в ходе обновления кэша, которое также относится к категории событий хода выполнения операции.)
Обработчтки событий хода выполнения операции получают объект ProgressEvent
, который определяет количество переданных байтов данных. Объект ProgressEvent
никак не связан с HTML-элементом <progress>
, описанным в справочной статье Progress
, но обект ProgressEvent
, передаваемый (например) обработчику onprogress
объекта XMLHttpRequest
, можно было бы использовать для обновления состояния элемента <progress>
, обеспечивающего визуальное представление хода выполнения операции загрузки.
Свойства
readonly boolean lengthComputable
Имеет значение true, если известно общее количество байтов, предназначенных для передачи, и false - в противном случае. Если это свойство имеет значение true, процент выполнения операции для объекта е
типа ProgressEvent
можно вычислить как:
var percentComplete = Math.floor(100*e.loaded/e.total);
readonly unsigned long loaded
Количество уже переданных байтов.
readonly unsigned long total
Общее количество байтов, предназначенных для передачи, если известно, и 0 -в противном случае. Эту информацию можно получить, например, из свойства size
объекта Blob
или из заголовка ContentLength
, возвращаемого веб-сервером.
- ApplicationCache
- ArrayBuffer
- ArrayBufferView
- Attr
- Audio
- BeforeUnloadEvent
- Blob
- BlobBuilder
- Button
- Canvas
- BlobBuilder
- Button
- Canvas
- CanvasGradient
- CanvasPattern
- CanvasRenderingContext2D
- ClientRect
- CloseEvent
- Comment
- Console
- ConsoleCommandLine
- CSS2Properties
- CSSRule
- CSSStyleDeclaration
- CSSStyleSheet
- DataTransfer
- DataView
- Document
- DocumentFragment
- DocumentType
- DOMException
- DOMImplementation
- DOMSettableTokenList
- DOMTokenList
- Element
- ErrorEvent
- Event
- EventSource
- EventTarget
- FieldSet
- File
- FileError
- FileReader
- FileReaderSync
- Form
- FormControl
- Form Data
- FormValidity
- Geocoordinates
- Geolocation
- GeolocationError
- Geoposition
- HashChangeEvent
- History
- HTMLCollection
- HTMLDocument
- HTMLEIement
- HTMLFormControlsCollection
- HTMLOptionsCollection
- IFrame
- Image
- ImageData
- Input
- jQuery jQuery 1.4
- KeyEvent
- Label
- Link
- Location
- MediaElement
- MediaError
- MessageChannel
- MessageEvent
- MessagePort
- Meter
- MouseEvent
- Navigator
- Node
- NodeList
- Option
- Output
- PageTransitionEvent
- PopStateEvent
- ProcessingInstruction
- Progress
- ProgressEvent
- Screen
- Script
- Select
- Storage
- StorageEvent
- Style
- Table
- TableCell
- TableRow
- TableSection
- Text
- TextArea
- TextMetrics
- TimeRanges
- TypedArray
- URL
- Video
- WebSocket
- Window
- Worker
- WorkerGlobalScope
- WorkerLocation
- WorkerNavigator
- XMLHttpRequest
- XMLHttpRequestUpload