大家好,
我在用js+ajax接收服务器返回数据达到几百K,通过setTimeout不断加载造成经常会pending状态,经常不能获取到数据,怎么办?
希望在这方面有经验的高人指点迷津!谢谢!
代码类似如下所示:
function getSchedule(date) {
var request = {
...
};
jQuery.ajax({
type : 'POST',
data : request,
success: function (response) {
jQuery("#data").html(loadInfo(response.data));
}
});
setTimeout(function() {
getSchedule(date);
}, 30000);
},
如果请求过于频繁,建议使用websocket连接后台。
如果你自己通过setTimeout都能搞成这样,那么先看看你的服务器的承载能力吧,然后检查本机是不是过于频繁,导致cpu或内存吃紧
每次请求创建一个新的xhr而不是使用同一个xhr对象
在ajax前面定义个数组,如var aa = []; var bb = [];
将返回回来的值放到数组里试试
success:function(data){
$.each(data,function(index,obj){
aa = obj.date;
bb = obj.time;
});
非得一次加载那么多吗?
看样子像是查询,考虑分页试试呢
把setTimeout写在success里面,可以结合分页。