你的位置:首页 > Java教程

[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题


做项目的时候遇到一个问题:

  上传文件以后,相同的地址,第一次加载没有问题,当你操作次数过快,上传次数过多时,后面的图片会出现加载不到的情况,浏览器加载依旧是上一个,或者更早之前的图片。

此问题出现原因:

  这涉及到浏览器缓存规则的问题。当你第二次或多次请求同一地址时,浏览器会加一个If-Modified-Since参数,记录上次请求的文件的最后修改时间(只精确到秒),web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的当前最后修改时间进行对比,

如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。这时候如

果你是操作过快的话,就会出现没有加载第二次的上传文件的问题。

解决方法:

  在请求地址后加个随机数的参数 例如:“http://offlintab.firefoxchina.cn/static/img/search/baidu_web.png?r=”+Math.Random();

  次方法同样适用与iframe等..