我正在使用WinJS Windows Metro應用程序,並在我的一個頁面上獲取要顯示爲背景的圖像的URL。通過使用url(圖像的URL)並將其設置爲style.backgroundImage,我可以很好地工作。在Windows Metro應用程序中緩存背景
我需要在鏈接頁面上使用相同的圖像,但這意味着我不得不做另一個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";
});
});
});
}