日期:2014-05-17  浏览次数:20808 次

菜鸟求解答,各种人士进
首先是htm中有一个img 其中onclick="ToggleCode(this, '../tools/verify_code.ashx');return false;"
而ToggleCode函数中$(obj).attr("src", codeurl + "?time=" + Math.random());
作用是申请一个验证码图片。我想问的是为什么一定要加"?time=" + Math.random()这段。把这段去掉为什么就不行了。这个和品是登陆网页时输入url有什么区别。time这个变量在verify_code.ashx文件中完全没用到
url 菜鸟求大神

------解决方案--------------------
加那东西是为了避免图片缓存
------解决方案--------------------
引用:
加那东西是为了避免图片缓存


正解。为了节约流量提高性能,浏览器会缓存图片,一个URL的图片一旦放入本地,再次请求,就直接显示本地缓存的,而不会再从服务器上下载。一般的图片相同URL的代表一个,这样做没有问题,但是对于你的验证码来说,每次请求你这个URL的产生的都是不一样的。如果浏览器直接使用缓存中的而不是再次下载,显示的验证码就不是你想要显示给用户的了。加上一个Random数字是为了让每次请求的地址不同,这是让浏览器视作这是一个没有被缓存的新图片的最简单的办法。但是实际上,控制CacheControl也可以达到类似的目的。