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

Posted 白小白学IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
                    })

以上是关于jquery的ajax发送请求后前端不能实时更新的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ajax 前端和后端数据交互的问题

防止重复发送ajax请求

原生Ajax jquery中使用Ajxa

jquery中使用ajax发送post请求变成get请求

前端Ajax/JS/HTML+后端SpringMVC

怎么样在jQuery progressbar中通过Ajax请求实现后台进度实时功能