根据页面的网址链接个数,用ajax去后台请求数据,后台根据这个网址,用httpclient去网站采集数据,当页面连接很多时,如何让ajax sleep
[code=HTML]$(document).ready(function (){$('input[name="enabled"]').each(function(){ //j假如>100个请求,能不能让它慢慢去服务器请求数据
var getUrl = $(this).val();
var inner = document.getElementById(getUrl).innerHTML;
if(getUrl!=null){
document.getElementById(getUrl).innerHTML='<center><img src="/images/loading_s.gif"/></center>';
$.ajax({
url:'DataServlet',
type:'get',
datatype:'html',
//data:all_str,
data: "method=getPrice&getUrl="+encodeURI(getUrl),
//timeout: 20000,
error:function(){
document.getElementById(getUrl).innerHTML="<center>系统繁忙,请稍后再试!</center>";
},
success:function(msg){
document.getElementById(getUrl).innerHTML = msg;
}
})
}
});
});
就是说这个each里面同时会有N次去请求后台,当页面url过多(>100时),后台就崩掉了。请问有没有像java里的sleep方法,让每执行一次,等一分钟。网上查了个方法好像不行。
还有就是当短时间内请求过多时,网站会封用户的IP,请问这个改怎么解决。
即使不封Ip 请求过多时httpclient会报如下错
org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
...
最终获取不到网站内容。
求高手指点...困扰N久,不甚感激 --------------------编程问答-------------------- 第一次上csdn上面提问木有人回,失望地结贴...顺带给大家分享下我的解决方案!多代理
补充:Java , Java EE