thinkPHP 中为什么刷新验证码要加入一个随机数

在ThinkPHP框架中,为了防止浏览器缓存验证码图像,通常会在验证码刷新时添加一个随机数到URL中。这是因为浏览器为提高性能会缓存同一URL的资源。通过动态改变URL,浏览器认为这是新的请求,从而避免使用缓存,确保每次都能获取最新的验证码图像,实现有效的验证码刷新功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Login_index.html:

<script type="text/javascript">
           var verifyUrl = '{:U("Admin/Login/verify",'','')}';//第三参数为空即不加后缀名
</script>
<script type="text/javascript" src="__PUBLIC__/Js/login.js"></script>


<tr>
<th>验证码:</th>
<td>
<input type="code" class="len250" name="code"/> <img src="
{:U('Admin/Login/verify')}" id="code"/> <a href="javascript:void(change_code(this));">看不清</a>
</td>
</tr>

login.js:

function change_code(obj){
$("#code").attr("src",verifyUrl + '/' + Math.random());//加个随机数重新刷新页面即刷新了验证码。
return false;
}


由于浏览器会对同一 url 的图像进行缓存,减少服务器端的请求次数,提高浏览性能。

利用附加一个随机数,来避免客户端浏览器使用缓存。让每次点击刷新验证码的时候

请求的 URL 路径都不同,告诉浏览器上个图片已经失效了,需要重新向服务器上请求

新的图片信息。

因为如果每次都是请求同一个页面,此时客户端浏览器会调用缓存中的页面。

而如果你每次都附加一个不同随机数给url,那么客户端会以为是新的页面,从而会向

服务器请求,这样才能实现每次点击都会刷新验证码的效果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值