我有一个无序列表,我以编程方式填充了一些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历史记录,则会立即显示图像,以便...发生了什么?