0

私は WinJS Windows Metro アプリケーションに取り組んでおり、私のページの 1 つで、背景として表示する画像への URL を取得しています。url(画像の URL) を使用し、それを style.backgroundImage として設定することで、うまく動作させることができます。

リンクされたページで同じ画像を使用する必要がありますが、それは別の 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";

            });
        });
    });
}
4

1 に答える 1

0

転送する画像の種類とその数によって異なります。イメージが 1 つしかない場合 (約 5Mo 未満) 、データをダウンロードできるWinJS.xhrを使用することをお勧めします。これにより、データが呼び出されるとすぐにダウンロードされます。

BackgroundTransferは、動画、音楽、大きな画像などのビッグ データに使用する必要があります。

画像のキャッシュに関しては、もちろんローカル フォルダーを使用して実行できます (この方法で実行する必要があります)。

David Catuhe によって作成されたこの一連の記事をご覧になることをお勧めします。

http://blogs.msdn.com/b/eternalcoding/archive/2012/06/15/how-to-cook-a-complete-windows-8-application-with-html5-css3-and-javascript-in-曜日-0.aspx

この助けを願っています。

于 2012-07-12T09:24:45.530 に答える