<div class="controls"> <div class="input-icon left"> <i class="icon-lock"></i> <input class="m-wrap placeholder-no-fix" style="width: 175px;" type="text" placeholder="验证码" name="checkCode"/> <img src="{{ URL('captcha/1') }}" id="checkCode" onclick="reloadcode(this)"> </div> </div>
<script language="javascript" >
function reloadcode(obj) {
obj.src = "{{ URL('captcha/1') }}"+Math.random();
//这里必须加入随机数否则地址相同会从新加载
}
</script>
因为浏览器会对同一 url 的图像进行缓存,向减小服务器端的请求次数,提升浏览性能,javascript
利用附加一个随机数,来避免客户端浏览器使用缓存。让每次点击刷新验证码的时候请求的 URL 路径都不一样,告诉浏览器上个图片已经失效了,须要从新向服务器上请求新的图片信息。
由于若是每次都是请求同一个页面,此时客户端浏览器会调用缓存中的页面
而若是你每次都附加一个不一样随机数给url,那么客户端会觉得是新的页面,从而会想服务器请求,这样才能实现每次点击都会刷新验证码的效果java