1:在ajax或者dwr提交的url后面加时间戳。
例如
http_request.onreadystatechange = funcName(函数名)
http_request.open("GET", url, true)
比如url是test .jsp
那么我们在它后面加上?time=new Date()
即url=test.jsp?time=new Date()
2 :在url后面加一个随机数。
。。。。。。。。。
url=test.jsp?number=Math.random()
因为时间和随即数是提交一次变一次,所以每次提交的都不是相同的,他就会当做一个新的请求去执行了
有时候在更改js文件后,页面并没有及时显示出来,可能由于修改的文件不对,或者存在缓存问题。面对的缓存问题有两个:
一是页面引入的js文件缓存。
二是js请求后台的缓存。
解决方法:
对于第一种情况,有两种处理方式:1、可以在页面引入的js文件后面增加日趋,如果不经常改动的文件,可以在每次改动后修改后缀。<script type="text/javascript" src="scripts/jquery-1.5.2.min.js?version=1"></script>
2、修改js文件的名字,如<script type="text/javascript" src="scripts/jquery.js"></script>
对于第二种情况,一般的处理方式是在请求的路径后面加上毫秒值,这样每次请求的路径都不一样,但是对于后台来说都是一样的,用来欺骗浏览器,进行实时请求,不调用浏览器缓存。
1、创建一个cache.js文件,前端页面,定义那些数据需要一次性拿到前端缓存,定义一个对象来保存这些数据。
2、前端页面,定义一个函数来调用后台接口获取数据,然后保存到本地缓存对象(dicts)中。
3、在主页面加载的时候调用这个方法一次性获取数据并缓存起来。这样,以后需要同样的数据,就直接从本地对象dicts中获取了。
4、后端Controller,定义一个接口,根据前端的请求,查询数据库(或查询服务器缓存,如下面例子中)获取数据返回给前端。