$.getJSON() 方法使用 AJAX 的GET请求获取 JSON 数据,使用$.getJSON()请求发现新增或删除数据后在其他浏览器没有问题,但是ie浏览器页面显示数据并没有更新,查询了一下发现是缓存问题。
解决方法
1.在index.html文件的顶部加入以下声明:
<meta http-equiv="Pragma" content="no-cache,no-store" />
<meta http-equiv="expires" content="0" />
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、min-fresh等,默认为private,在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。
no-cache:请求或响应消息不能缓存
no-store:用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age:客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh:客户机可以接收响应时间小于当前时间加上指定时间的响应
Expires:值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问,如果服务器上的网页经常变化,就把它设置为0,表示立即过期。
2.把$.getJSON()修改为$.ajax请求,然后设置cache:false
$.ajax({
url: url,
data: data,
cache:false,
success: callback
});