0

プログラムでいくつかのliアイテムを入力する順序付けられていないリストがあります。

 function addNewElement(elem) {

     var li = $("<li></li>");

     li.prop("class", "ui-state-default");
     li.prop("id", elem.Alias);
     li.text(elem.Name);

     var newItem = '<div id="' + elem.Alias + '-Status" class="elementStatus"><div class="image"><img id="' + elem.Alias + '-StatusImg" src="@Url.Content("~/images/ongoing.gif")"></div><div id="' + elem.Alias + '-StatusTxt" class="text">Waiting...</div></div>';
     console.log("new item added: " + newItem);
     li.append(newItem);
     li.appendTo($(getSortableContainer(elem.Alias)));
 };

関数 getSortableContainer は順序付けられていないリスト (ul アイテム) です。

長いタスクの実行中は、画像が表示され、画像の下に「待機中」というテキストが表示されます。長いタスクの結果を取得したら、次を使用して div (src プロパティ) 内の上記の img のイメージを更新します。

function setImg(elemId) {
    $('#' + elemId + '-StatusImg').attr("src", '@Url.Content("~/images/MyImage.gif")');
    $('#' + elemId + '-StatusTxt').text("Done!");
}

問題は、上記の機能を使用して画像を新しいものに更新すると、画像がすぐに更新されず、数秒後、15 秒以上更新されることです。

イメージをすぐに強制的に更新するにはどうすればよいですか?

更新 2013.10.24 :

以下の行を使用してイメージを更新し、キャッシュを防ぎます。

var d = new Date();
$('#' + elemId + '-StatusImg').prop("src", '@Url.Content("~/images/MyImage.gif")' + '#' + d.getTime());

それを使用すると、(以前にすべての Internet Explorer の履歴、Cookie などを削除して) 初めて Web アプリを起動すると、画像が遅延して表示され続けます。次回、インターネット エクスプローラーの履歴を削除せずに Web アプリを再起動すると、すぐに画像が表示されるので、どうしたのでしょうか?

4

0 に答える 0