Книга: JavaScript. Подробное руководство, 6-е издание
ApplicationCache
ApplicationCache
прикладной интерфейс управления кэшем приложений (EventTarget)
Объект ApplicationCache
- это значение свойства applicationCache
объекта Window
. Он определяет API управления обновлением кэшированных приложений. В простых кэшируемых приложениях не требуется использовать этот API: достаточно создать (и обновлять по мере необходимости) соответствующий файл объявления кэшируемого приложения, как описывается в разделе 20.4. В более сложных приложениях, где может возникнуть потребность более активно управлять обновлениями, можно использовать свойства, методы и обработчики событий, описываемые здесь. Подробности приводятся в разделе 20.4.2.
Константы
Следующие константы представляют допустимые значения свойства status
,
unsigned short UNCACHED = 0
Это приложение не имеет атрибута manifest
: оно не кэшируется.
unsigned short IDLE = 1
Файл объявления проверен, данное приложение сохранено в кэше и обновлено.
unsigned short CHECKING = 2
В настоящее время броузер проверяет файл объявления.
unsigned short DOWNLOADING = З
Броузер загружает и сохраняет в кэше файлы, перечисленные в объявлении.
unsigned short UPDATEREADY = 4
Была загружена и сохранена в кэше новая версия приложения.
unsigned short OBSOLETE = 5
Файл объявления не найден и приложение будет удалено из кэша.
Свойства
readonly unsigned short status
Это свойство описывает состояние кэша текущего документа. Оно может принимать одно из значений, перечисленных выше.
Методы
void swapCache()
Когда свойство status
получает значение UPDATEREADY
, броузер управляет двумя версиями кэшируемого приложения: старые версии файлов из кэша, используемые запущенным приложением, и новые загруженные версии, которые будут использоваться при следующем запуске приложения. Приложение может вызвать swapCache()
, чтобы сообщить броузеру, что он может немедленно удалить старые версии и начать использовать новые версии файлов. Однако имейте в виду, что это может привести к конфликту версий, и гораздо безопаснее будет выполнить переход на новую версию, перезагрузив приложение вызовом метода Location.reload()
.
void update()
Обычно броузер проверяет наличие новой версии файла объявления кэшируемого приложения каждый раз, когда это приложение загружается. Долгоживущие веб-приложения могут использовать этот метод, чтобы чаще проверять наличие обновлений.
Обработчики событий
В ходе проверки файла объявления и обновления кэша броузер возбуждает в объекте ApplicationCache
целую серию событий. Для регистрации обработчиков событий можно использовать следующие свойства объекта ApplicationCache
или методы интерфейса EventTarget
, реализованные в объекте ApplicationCache
. Обработчики большинства этих событий получают простой объект Event
. Обработчики событий «progress» получают объект ProgressEvent
, с помощью которого можно узнать, какой объем в байтах уже был загружен.
oncached
Возбуждается, когда приложение впервые сохраняется в кэше. Это последнее событие в последовательности.
onchecking
Возбуждается, когда броузер начинает проверку наличия обновленного файла объявления. Это первое событие в последовательности событий, генерируемых в кэшируемом приложении,
ondownloading
Возбуждается, когда броузер начинает загрузку ресурсов, перечисленных в файле объявления, т. е. либо когда приложение впервые помещается в кэш, либо когда оно обновляется. За этим событием обычно следует одно или более событий «progress».
onerror
Возбуждается, когда в ходе обновления кэша возникает ошибка. Это может произойти, например, когда броузер работает в автономном режиме или если приложение ссылается на несуществующий файл объявления.
onnoupdate
Возбуждается, когда броузер определяет, что файл объявления не изменился и приложение в кэше имеет текущую версию. Это последнее событие в последовательности.
onobsolete
Возбуждается, когда исчезает файл объявления кэшируемого приложения. Это приводит к удалению приложения из кэша. Это последнее событие в последовательности.
onprogress
Возбуждается периодически, пока идет загрузка и сохранение в кэше файлов приложения. С этим событием обработчикам передается объект ProgressEvent
.
onupdateready
Возбуждается, когда броузер загрузит и сохранит в кэше новую версию приложения (и она будет готова к использованию при следующем запуске приложения). Это последнее событие в последовательности.
- 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