使用jquery以编程方式更新图像

时间:2013-10-13 21:28:49

标签: jquery image src

我有一个无序列表,我以编程方式填充了一些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等),图像继续显示延迟。下一次,如果我再次启动我的网络应用程序,而不删除Internet Explorer历史记录,则会立即显示图像,以便...发生了什么?

0 个答案:

没有答案