我正在使用jQuery构建一个网站。 两件重要的事情:通过javascript更改图像src - 缓存问题
- 我想手动更改图片(图片src),但有时画面没有改变(我使用的是现在的铬,但我想一般的解决方案)。
- 此外,我想获得图片宽度+高度,我加载图片后。 (图片是来自服务器的文件 - 我只是使用不同的文件名)。
当通过JavaScript/jQuery改变图像 - 我意识到,当我改变图像一次,它保存在内存中,所以我遇到了一些问题。
我发现图像不上报的第二时间,由于缓存的问题,所以我做了一些解决方法,我意识到,我需要做的JavaScript命令,例如:
$("#id_image").attr("src", "pictures\\mypicture.jpg" + "?" + Math.random());
那怎么我我正在手动更改图像。
通过使用Math.random()
我得到了第二个问题:
如果我Math.random()
以前写的一行:
$("#id_image").width("auto");
$("#id_image").height("auto");
我没有得到使用Math.random()
后高度+宽度,所以我把另一条线,最后我的代码是:
$("#id_image").width("auto");
$("#id_image").height("auto");
$("#id_image").attr("src", "pictures\\mypicture.jpg");
$("#id_image").attr("src", "pictures\\mypicture.jpg" + "?" + Math.random());
alert("#id_image").width()); // **** returns 0 sometimes due cache
alert("#id_image").height()); // **** returns 0 sometimes due cache
不过,我有一些问题(见Asterisk的话),我不知道该怎么总是获取加载图像的宽度+高度。
问题是'width()'和'height()'在图像完成加载之前调用,因此为零。在'(“#id_image”).load()'处理程序中包含警报。 –