jquery的ajax发送请求后前端不能实时更新

在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱(比如说多次请求却没有响应)。

错误代码如下:

$.get("fetch.php")
                    .done(function(data){
                        html = '';
                        $.each(JSON.parse(data),function(k,v){
                            html += v+"\/";
                        });
                        $("#uprecord").html(html);
                    })

这段代码在第一次执行时会实时刷新,但如果执行多次后,页面显示的还是最初的数据,并不会实时刷新。问题根源在于GET请求的页面不变,没有参数基本就是等于相同,所以在页面不变,参数也不变的情况下,get不会从后台去请求数据,而是从缓存取。为了解决这个问题,可以传入一个时间戳的参数,正确代码如下:

$.get("fetch.php",{ rd:new Date().getTime()})
                    .done(function(data){
                        html = '';
                        $.each(JSON.parse(data),function(k,v){
                            html += v+"\/";
                        });
                        $("#uprecord").html(html);
                    })
posted @ 2020-01-15 08:57  白小白学IT  阅读(428)  评论(0)    收藏  举报