使用jquery动态修改IMG对象的SRC之后,如果图片显示不出来,可能会是因为这种原因造成的:缓存中的临时图片影响了最新图片的显示。
遇到这种问题,该如何解决呢?
解决思路,让SRC属性添加一个随机参数即可解决问题。
比如存在下面的这样的代码。
var img = document.createElement("img");
img.setAttribute("id", "MyNewGetServerPic1");
img.src = "img/png/MyCamera.png";
$("#GetServerPic").empty();
$("#GetServerPic").append(img);
上面代码的功能是,动态生成一个IMG对象,然后将其添加到DIV中。仍然,当第一次使用上面的代码的时候,图片能正常显示出来。但是,如果修改了服务器中的图片,注意,是图片内容改了,图片名称未变。最后导致的结果是,新的图片显示不出来,一直都是显示第一次的图片。
解决办法,为URL添加随机参数即可。
所以,上面的代码,其中,将img.src = "img/png/MyCamera.png";
改为如下的代码:
img.src = "img/png/MyCamera.png"+"?t="+"&"+Math.random();
就这样,问题就得到解决了。
知识拓展:
所谓的增加的这个随机参数,实际是将URL地址构造成为带有随机参数的网址,这样一来,每次请求的时候,系统会以为是链接新的URL,因此,每次都能更新图片的显示。