Использование пооконной загрузки и режимов автоматического обновления
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]
В Windows 8.1 и более поздних версиях поддерживается пооконная загрузка и режимы автоматического обновления.
Каждое окно в приложении на JavaScript имеет собственную систему управления ресурсами ResourceContext. Windows обновляет этот объект ResourceContext, когда пользователь перетаскивает окно приложения на монитор с другим значением DPI или когда происходит системное событие, например меняется язык, а также если вы явно переопределяете значение.
Ресурсы в приложении на JavaScript (которые загружаются по протоколам ms-appx: и ms-appx-web:) разрешаются с помощью системы управления ресурсами, но не все ресурсы проходят через контекст окна, которое создает запрос. С помощью объекта ResourceContext окна разрешаются только скачиваемые ресурсы следующих типов:
CSS
- background-image
- border-image
- Создаваемое содержимое: list-style-image и content:url()
HTML
- Фоновый атрибут элементов (например,
<body background='logo.png'>...</body>
) - Атрибут src для элементов изображений (например,
<img src='logo.png' />
) - Атрибут src для встроенных элементов (например,
<embed width="100" height="100" src="logo.png" type="image/png" />
) - Атрибут data для объектных элементов (например,
<object width="100" height="100" data="logo.png" type="image/png" />
) - Изображения, загружаемые с помощью атрибута href элемента image в <svg>
- Фоновый атрибут элементов (например,
JavaScript
- XHR (XMLHttpRequest)
Если необходимо разрешить ресурс в контексте ресурса окна, однако этот ресурс отсутствует в предшествующем списке (например, CSS для <link>), то вы можете получить правильно разрешенный файл с помощью XHR.
Кроме того, приложения на JavaScript поддерживают автоматическое обновление некоторых изображений. Это значит, что если изменяется контекст ресурса окна, среда выполнения Windows автоматически (в случае необходимости) повторно скачивает и отображает соответствующее изображение. Вот типы изображений, для которых поддерживается такое обновление:
CSS
- background-image
- border-image
- Создаваемое содержимое: list-style-image (но не content:url())
В Windows 8.1 и более поздних версиях использование автоматического обновления упрощает код CSS.
Например, в Windows 8, где нет автоматического обновления, код CSS, необходимый для обновления изображения при изменении DPI или языка, выглядит так:
@media all and (max-resolution: 134dpi) {
/* Load 100% image when scaled by 100% */
div.imageBackground:-ms-lang(en) {
background-image: url('logo.png?s=100&lang=en');
}
div.imageBackground:-ms-lang(fr) {
background-image: url('logo.png?s=100&lang=fr');
}
}
@media all and (min-resolution: 135dpi) {
/* Load 140% image when scaled by 140% */
div.imageBackground:-ms-lang(en) {
background-image: url('logo.png?s=140&lang=en');
}
div.imageBackground:-ms-lang(fr) {
background-image: url('logo.png?s=140&lang=fr');
}
}
@media all and (min-resolution: 174dpi) {
/* Load 180% image when scaled by 180% */
div.imageBackground:-ms-lang(en) {
background-image: url('logo.png?s=180&lang=en');
}
div.imageBackground:-ms-lang(fr) {
background-image: url('logo.png?s=180&lang=fr');
}
}
В Windows 8.1 и более поздних версиях эквивалентный код CSS будет выглядеть проще:
div.imageBackground {
background-image: url('logo.png');
}
Связанные разделы
Краткое руководство: использование файловых и графических ресурсов