WinJS Windows Metro 응용 프로그램에서 작업하고 있으며 내 페이지 중 하나에서 배경으로 표시 할 이미지의 URL을 얻고 있습니다. 나는 url (이미지의 URL)을 사용하고 style.backgroundImage로 설정하여 잘 작동하도록 할 수있다.Windows Metro App에서 배경 캐싱
링크 된 페이지에서 동일한 이미지를 사용해야하지만 이는 피하려고하는 또 다른 HTTP 요청을해야한다는 것을 의미합니다. 대안을 살펴본 후 LocalFolder를 옵션으로 찾았습니다. 유일한 문제는 파일에 액세스하여 배경으로 설정하는 방법을 모르겠다는 것입니다.
웹 캐스팅을 줄이기 위해 데이터를 캐싱하는 것이 올바른 방법입니까?
function saveBackground(url) {
localFolder.createFileAsync("background.jpg", Windows.Storage.CreationCollisionOption.replaceExisting).then(function (newFile) {
var uri = Windows.Foundation.Uri(url);
var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
var promise = downloader.createDownload(uri, newFile);
promise.startAsync().then(function() {
//set background here.
var wrapper = document.getElementById("wrapper").style;
localFolder.getFileAsync("background.jpg").then(function (image) {
console.log(image.path);
var path = image.path.split("");
var newLocation = [];
//This is just to make the backslashes work out for the url()
for (var i = 0; i < path.length; i++) {
if (path[i] != '\\') {
newLocation.push(path[i]);
} else {
newLocation.push('\\\\');
}
}
console.log(newLocation);
var newPath = newLocation.join("");
var target = "url(" + newPath + ")";
wrapper.backgroundImage = target;
console.log(wrapper.backgroundImage);
wrapper.backgroundSize = "cover";
});
});
});
}