4

如何使用 javascript 重新加载此图像以从服务器获取新图像,而无需重新加载页面?

<img src="?option=com_fcse&task=getimage&width=100&height=40&characters=5&r=<?php echo mt_rand(0, 10000000); ?>" />

谢谢

4

3 回答 3

2

这应该这样做:

thatImgObj.src = thatImgObj.src.replace(/&r=\d+/, "&r="+ ~~(Math.random()*1e7));

(当然,有 1e-7 的机会再次获得相同的缓存破坏器 - 时间戳可能是更好的选择)

于 2013-05-02T08:07:44.427 回答
1

好吧,我认为最简单的方法是更改src​​ Javascript 中的属性。就像:YouImageElement.src += "&rand2"+Math.random();

修改src属性会导致图像重新加载,并且因为它有另一个随机数集客户端,它不应该被缓存。

于 2013-05-02T08:05:49.357 回答
1

你的代码

添加id="img1"

<img id="img1" src="?option=com_fcse&task=getimage&width=100&height=40&characters=5&r=<?php echo mt_rand(0, 10000000); ?>" />

JS代码:

var newImage = new Image();
newImage.src = document.getElementById("img1").src + "&_=" + new Date().getTime();

在 url 的末尾添加了一个 cachebreaker

于 2013-05-02T08:07:59.230 回答