页面异步请求问题
项目中遇到问题:环境:页面是有直接请求+ajax异步请求组成页面JS代码如图服务端javaSPRING+Ibatis+cAS单点登录问题:在IE浏览器不停的访问,时间长了...
项目中遇到问题:
环境:
页面是有直接请求 + ajax 异步请求 组成
页面JS代码如图
服务端 java SPRING + Ibatis + cAS单点登录
问题:
在IE浏览器不停的访问 ,时间长了就会有 页面加载进来了,但异步请求数据没有被加载进来,但只要清楚IE浏览器的缓存文件,页面又可以正常访问。
想问在服务端做什么样的处理能避免问题中的操作(前提数据不能缓存) 展开
环境:
页面是有直接请求 + ajax 异步请求 组成
页面JS代码如图
服务端 java SPRING + Ibatis + cAS单点登录
问题:
在IE浏览器不停的访问 ,时间长了就会有 页面加载进来了,但异步请求数据没有被加载进来,但只要清楚IE浏览器的缓存文件,页面又可以正常访问。
想问在服务端做什么样的处理能避免问题中的操作(前提数据不能缓存) 展开
4个回答
展开全部
每次Ajax调用哪个参数中增加一个Random的变量,比如时间什么的,现在的问题估计是每次请求的参数都一样,被浏览器缓存了,所以不会对服务端有请求。
追问
jquery ajax 设置cache 为false ,会默认生成一个参数 _=+时间戳的
追答
有一种可能,网速过慢会导致网页数据加载不完整,这样也会导致Ajax脚本不会被正常执行,可以看看IE状态栏有没有报JS错误。或者在Ajax调用之前alert看看有没有发送AJAX请求吧。
呵呵,感觉还是IE缓存导致的,设置IE为不读本地缓存,看能不能正常访问吧。
展开全部
在你访问后台的url后面加上一个时间戳问题就应该可以解决了。以前遇到过类似的问题,确实很纠结。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
差点忘记重写url这回事了,要欺骗一下浏览器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以给上面的url加一个时间戳的随机数
url : MyUtil.refactURL(“/follow/ajaxIndex”),
//这是我自己的工具你自己加上吧
var MyUtil = {
/** 计算随机数 */
rand : function() {
var low = 0;
var high = 100;
var rand = parseInt(Math.random() * (low - high + 1) + high);
return rand;
},
/** 异步请求前将请求url加上随机数和异步请求标志 */
refactURL : function(url) {
var sVal = url;
if (sVal.indexOf('?') == -1) {
sVal += "?isAsync=1&rnd=" + MyUtil.rand();
} else {
if (sVal.indexOf('isAsync') == -1) {
if (sVal.lastIndexOf('?') == 0) {
sVal += "isAsync=1";
} else {
sVal += "&isAsync=1";
}
}
if (sVal.indexOf('rnd') == -1) {
if (sVal.lastIndexOf('?') == 0) {
sVal += "rnd=" + MyUtil.rand();
} else {
sVal += "&rnd=" + MyUtil.rand();
}
}
}
return sVal;
}
};
url : MyUtil.refactURL(“/follow/ajaxIndex”),
//这是我自己的工具你自己加上吧
var MyUtil = {
/** 计算随机数 */
rand : function() {
var low = 0;
var high = 100;
var rand = parseInt(Math.random() * (low - high + 1) + high);
return rand;
},
/** 异步请求前将请求url加上随机数和异步请求标志 */
refactURL : function(url) {
var sVal = url;
if (sVal.indexOf('?') == -1) {
sVal += "?isAsync=1&rnd=" + MyUtil.rand();
} else {
if (sVal.indexOf('isAsync') == -1) {
if (sVal.lastIndexOf('?') == 0) {
sVal += "isAsync=1";
} else {
sVal += "&isAsync=1";
}
}
if (sVal.indexOf('rnd') == -1) {
if (sVal.lastIndexOf('?') == 0) {
sVal += "rnd=" + MyUtil.rand();
} else {
sVal += "&rnd=" + MyUtil.rand();
}
}
}
return sVal;
}
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询