在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据)
问题:
例如用ajax获取当前时间
采用不同的浏览器运行该程序会得到不同的输出结果,Chrome浏览器中能够显示出实时时间,但是在IE中显示的时间都是相同的。
<script type="text/javascript">
$(function () {
window.setInterval(function () {
$.ajax({
url:'getCurrenttime.PHP?ctime='+(new Date()).valueOf(),
success: function (result) {
$("ul").append("<li>" + result + "</li>");
}
});
},5000);
});
</script>
解决办法:
<script type="text/javascript">
$(function () {
window.setInterval(function () {
$.ajax({
url:'getCurrenttime.PHP?_dc='+(new Date()).valueOf(),
success: function (result) {
$("ul").append("<li>" + result + "</li>");
}
});
},5000);
});
</script>
2.
<script type="text/javascript">
$(function () {
window.setInterval(function () {
$.ajax({
url:'getCurrenttime.PHP',
cache:false,
success: function (result) {
$("ul").append("<li>" + result + "</li>");
}
});
},5000);
});