admin管理员组

文章数量:1530018

在编写代码的过程中,我们时常会因为一个问题而苦恼,当我们自己写好单独JS文件的时候,想要去更改,更改过后发现没有效果或者是报错,会让我们时常感到困惑,这到底是什么原因呢? 其实这就是一种“浏览器缓存机制”所导致的。下面我来简单的说一下浏览器缓存机制所遇到的问题和处理方法。

在我们做项目时经常会出现验证码的功能,验证码也能很好的解释浏览器遇到这种缓存机制所存在的问题。


登陆过网页的都知道,验证码经常不会一次输对。并且有时候看不太清楚的会换取另一张输入。这个时候浏览器缓存机制就开始“作怪了”。当我点击验证码的时候,图片却怎么也刷新不了。这会误以为我们点击事件没有写入。但其实点击事件是触发了的。


从红线中我们可以看到点击事件是一直在不断触发的,但是为什么没有效果呢?

这就是因为浏览器的缓存机制所导致。浏览器为了避免不断地去请求服务器,它会自动把相同路径的东西缓存一份下来,比如我们刚刚的验证码。点击事件明明触发了,却不会更换验证码图片。这个时候我们就需要去清理缓存。

清楚缓存后,我们可以看到验证码确实是更换了。但每次更换都需要去清理缓存岂不是十分麻烦?我们这时候就需要另外一种解决方法。既然浏览器是因为根据相同路径来执行的,那么我们改不同路径是不是就解决问题了呢?

这个路径明显改不了,路径改不了我们可以给它传个参数。

用当前的时间用毫秒给它拼接一个参数,这样每次的URL就会发生改变。

现在问题便解决了,验证码可以随意更换。

注:浏览器缓存机制有好处有坏处,比如你打开一个网页它图片加载出来后,等你下次打开,它就不用去加载之前的图片,因为之前浏览器已经自动帮你缓存下来了。这是就优势,可以加快网页请求的速度,但这种机制对我门网页web开发人员来说是十分头疼的,所以我们经常就需要去清缓存,克服问题的关键所在就是修改路径,给服务器修改一个不同路径的参数使得路径每次发生改变,就可以解决问题。

本文标签: 缓存浏览器