0

最初に、データベース エントリの ID である label 要素の値を取得する JavaScript 関数があります。これらの ID は、データベースから画像の保存場所を取得する ASP ページに送信されます。

選択された各画像のこの保存場所の情報は、ASP.NET ページに送信されます。ASP.NET ページは、各画像の保存場所を分割し、それに応じて画像を回転させます。これはすべて完璧に機能します。私の唯一の問題は、HTA ファイルを再度開くまで画像が更新されないことです。

  • ビデオに見られるように、更新は機能しません。

  • 下部のビデオでわかるように、ファイルは回転しています

  • 動画へのリンクはこちら!

回転を行う私のJavaScriptは次のとおりです。

function doRotate(dir,obj)
{
    var http = getHTTPObject();
    var http2 = getHTTPObject();
    ids = fetchSelection().toString();

    //Make button animate, visual aid that it is working
    obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+"_animated.gif";

    http.onreadystatechange = function() 
    {
        //Fetch the save location of selected images
        if (http.readyState == 4 && http.status == 200) {
            //Create URL string to send to rotate script
            var locs = http.responseText;
            locs = locs.split(",");

            //Start of URL 
            var url = "http://localhost/nightclub_photography/net/rotate_script.aspx?dir=" + dir;

            for (var i=0; i < locs.length-1; i++)
            {
                url = url + "&t=" + locs[i];
            }
            //Add random math
            url = url + "&k=" + Math.random();

            http2.onreadystatechange = function() 
            {                   
                if (http2.readyState == 4 && http2.status == 200)
                {

                    //Stop animated button
                    obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+".png";

                    //Split id's
                    var idsSplit = ids.split(",");
                    for (var k=0; k < idsSplit.length; k++) {
                        reapplyStyle(idsSplit[k]);
                    }
                }
            }
            http2.open("GET", url);
            http2.send();
        }
    }
    http.open("GET", "http://localhost/nightclub_photography/asp/returnDatabaseData.asp?ids="+ids+"&k=" + Math.random());
    http.send();
}

また、回転した画像をリロードする必要がある背景画像を再適用する(まあ、そうする必要があります)関数もあります。ページのリロードが機能しないため、その機能も機能していることはわかりませんが、それは別の問題です。関数は次のとおりです。

function reapplyStyle(id) {
    var background = doc(id+"_label").style.backgroundImage;
    doc(id+"_label").style.backgroundImage = background;
}
4

1 に答える 1

2

キャッシュの問題である場合は、画像の URL を一意にしてみましたか。次のようなことを試してください:

ts = new Date().getTime();
obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+".png?timestamp=" + ts;
于 2013-08-16T16:10:46.127 に答える