Ajax中数据请求结果不刷新问题
来源:互联网 发布:小猪cms和baocms 编辑:程序博客网 时间:2024/05/18 00:32
有时在一个页面中会经常调用某个ajax请求,但发现请求第一次之后,返回一个结果,后面再多次请求,结果还是不变,即使后台的数据真正变了也得不到最新的结果。
原来是请求的地址在浏览器的缓存中已经存在,且已有结果,所以直接将结果显示,这时我们可以通过变化访问请求地址字符串,每次都会触发访问。
如下语句:
var req; //定义变量,用来创建xmlhttprequest对象 function creatReq(request_id) // 创建xmlhttprequest,ajax开始 { var url="a.aspx"; //要请求的服务端地址 if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建 { req=new XMLHttpRequest(); } else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败. { req=new ActiveXObject("Microsoft.XMLHttp"); } if(req) //成功创建xmlhttprequest { req.open("GET",url+"?request_id="+request_id+"&"+Math.random(),true); //与服务端建立连接(请求方式post或get,地址,true表示异步) req.onreadystatechange = callback; //指定回调函数 req.send(null); //发送请求 } } function callback() //回调函数,对服务端的响应处理,监视response状态 { if(req.readystate==4) //请求状态为4表示成功 { if(req.status==200) //http状态200表示OK { Dispaly(); //所有状态成功,执行此函数,显示数据 } else //http返回状态失败 { alert("服务端返回状态" + req.statusText); } } else //请求状态还没有成功,页面等待 { document.getElementById ("ItemInfo").innerHTML ="数据加载中"; } }
主要是下面这语:
req.open("GET",url+"?request_id="+request_id+"&"+Math.random(),true);
访问加+"&"+Math.random()后,保存每次访问的地址在缓存中都不存在,这样每次都会取到最新的数据。
- Ajax中数据请求结果不刷新问题
- 在页面中AJAX每次的请求不刷新
- 解决Ajax请求获取数据不能实时刷新问题
- ajax异步问题导致的刷新页面数据不更新
- Jquery AJAX 请求IE缓存,数据不更新的问题
- IE浏览器缓存Ajax请求之后不更新数据问题
- ajax 不提交数据刷新 数据
- ajax异步无刷新请求数据
- vb.net 中 GridView中数据不刷新问题!~~~
- 非ajax请求下载,不刷新页面,防止页面直接打开的问题,安全下载
- AJAX 缓存请求结果的问题
- ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
- IE下遭遇Ajax缓存导致数据不更新的问题 ajax页面无刷新
- Ajax请求后页面刷新问题
- 【Jsp】Ajax提交数据不刷新页面
- ajax 请求json 数据问题
- ajax请求数据的问题
- vue ajax请求数据不更新 解决方案
- c# 深度克隆
- WebService CXF学习(入门篇2):HelloWorld示例
- 啥是Android呀?
- Windows CE下的USB设备驱动程序开发实例
- Linux下Javah常见错误记录
- Ajax中数据请求结果不刷新问题
- MFC注册窗口类以及FindWindow按窗口类名查询
- 文本与二进制方式打开文件的区别
- 如何添加对 ATL 的应用程序承载 VBScript 的支持
- Linux下的vim配置和插件管理
- ULTRA EDIT -32 之传统正则表达式
- 物料订单创建、下达、报工、收货与投料
- UDP vc++ 2011.07.14
- 增强Eclipse ,MyEclipse 的代码提示功能