javascript没有为上传的CSV中的所有记录调用ajax
我已经编写了一个代码来解析上传的javascript没有为上传的CSV中的所有记录调用ajax,javascript,jquery,ajax,callback,queue,Javascript,Jquery,Ajax,Callback,Queue,我已经编写了一个代码来解析上传的CSV,并将请求发送到Places API,以获取CSV中的所有记录,然后将它们显示在CSV上。 该代码对于csv中的少量记录工作正常,但当我在超过400条记录上尝试时,它不会显示所有结果 网页是实时的,CSV在这里 我试过几种方法,比如回调,但没有成功 以下是Javascript和HTML表格代码: <table class="table table-hover table-condensed" id="myTable">
CSV
,并将请求发送到Places API
,以获取CSV中的所有记录,然后将它们显示在CSV
上。
该代码对于csv中的少量记录工作正常,但当我在超过400条记录上尝试时,它不会显示所有结果
网页是实时的,CSV在这里
我试过几种方法,比如回调,但没有成功
以下是Javascript和HTML表格代码:
<table class="table table-hover table-condensed" id="myTable">
<tr>
<td>Name</td>
<td>Address</td>
<td>Phone</td>
<td>Website</td>
<td>Rating</td>
<td>Lat</td>
<td>Lng</td>
</tr>
</table>
</div>
这只是在表中添加了一行:
function add_tr(result){
var name,phone,addr,lat,lng,rating,website='';
data = result.result;
// console.log(result);
if(result.status=='NO_RESULTS'){
name = data;
$('#myTable tr:last').after('<tr id="data"><td>'+name+'</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>');
}
else if(result.status=='OK'){
if(data.name){
name = data.name;
}
if(data.hasOwnProperty('formatted_phone_number')){
phone= data.formatted_phone_number;
}
if(data.hasOwnProperty('formatted_address')){
addr = data.formatted_address;
}
if(data.hasOwnProperty('website')){
website = data.website;
}
if(data.hasOwnProperty('rating')){
rating = data.rating;
}
if(data.hasOwnProperty('geometry')){
lat =data.geometry.location.lat;
}
if(data.hasOwnProperty('geometry')){
lng = data.geometry.location.lng; }
$('#myTable tr:last').after('<tr>'+
'<td>'+name+'</td>'+
'<td>'+addr+'</td>'+
'<td>'+phone+'</td>'+
'<td>'+website+'</td>'+
'<td>'+rating+'</td>'+
'<td>'+lat+'</td>'+
'<td>'+lng+'</td>'+
'</tr>');
}
console.log(parsedata_obj.results.length);
}
var parseCsv = new uploadDealcsv();
parseCsv.getCsv();
</script>
函数添加(结果){
var名称、电话、地址、lat、lng、评级、网站=“”;
数据=结果。结果;
//控制台日志(结果);
if(result.status==“无结果”){
名称=数据;
$('#myTable tr:last')。在(''+name+'')之后;
}
else if(result.status=='OK'){
if(data.name){
name=data.name;
}
if(data.hasOwnProperty('formatted\u phone\u number')){
电话=data.formatted\u电话号码;
}
if(data.hasOwnProperty('formatted_address')){
addr=data.formatted\u地址;
}
if(data.hasOwnProperty(“网站”)){
网站=data.website;
}
if(data.hasOwnProperty(“评级”)){
评级=数据。评级;
}
if(data.hasOwnProperty('geometry')){
lat=data.geometry.location.lat;
}
if(data.hasOwnProperty('geometry')){
lng=data.geometry.location.lng;}
$('#myTable tr:last')。在(''+
''+姓名+''的+
“+addr+”+
''+电话+''+
''+网站+''+
''+评级+''+
“+lat+”+
''液化天然气+''+
'');
}
日志(parsedata_obj.results.length);
}
var parseCsv=new uploadDealcsv();
grassecsv.getCsv();
我还没有测试您的代码,但我认为问题在于400行同时触发了太多AJAX请求。
也许你可以试着解决这个问题:
我没有测试您的代码,但我认为问题在于400行同时发出了太多AJAX请求。 也许你可以试着解决这个问题:
你是说设置超时吗?这是行不通的。您必须等待请求的响应,因为我正在使用callback。您监控过ajax请求吗?同一时间发生了多少起火灾?603,但应该不止这些mh我仍然认为这是一个时间问题,同时有太多的请求。如果你把问题放在例如JSFIDLE上,我会看一看你的意思是设置超时吗?这是行不通的。您必须等待请求的响应,因为我正在使用callback。您监控过ajax请求吗?同一时间发生了多少起火灾?603,但应该不止这些mh我仍然认为这是一个时间问题,同时有太多的请求。如果你把问题放在例如JSFIDLE上,我会看一看
var send_request = (parsedata,callback)=>{
console.log(parsedata.length)
for(var i=0;i<parsedata.length;i++){
console.log(i+ " - "+ parsedata[i][0]);
// alert(parsedata_obj.results.length+ " - "+ parsedata[i][0]);
if(!parsedata[i][0]){
continue
}
var site_name = parsedata[i][0].split('o/a')
if(site_name.length>1){
site_name = site_name[1];
}
else{
site_name=site_name[0];
}
var desired = site_name.replace(/[^\w\s]/gi, '')
var search_string = desired+' '+parsedata[i][3];
timeouter(search_string)
}
callback(1);
}
function timeouter(search_string){
setTimeout(
first_call(search_string,(result)=>{
console.log(result);
add_tr(result);
}),1000);
}
function first_call(search_string,callback){
$.ajax({url: 'getdata.php',
timeout:30000,
type:'POST',
data:{
search_string:search_string.rep_all(' ','%20')
},
success: function(result1){
result1= JSON.parse(result1);
if(result1.status=='OK'){
var placeid = result1.candidates[0].place_id;
secondcall(placeid,(result)=>{
result=JSON.parse(result);
callback(result);
});
}
else{
callback({'result':search_string,'status':'NO_RESULTS'})
}
}
});
}
function secondcall(placeid,callback){
$.ajax({url: 'getdata.php',
timeout:30000,
data:{
place_id:placeid
},
type:'POST',
success:function(result){
callback(result);
}
})
}
function add_tr(result){
var name,phone,addr,lat,lng,rating,website='';
data = result.result;
// console.log(result);
if(result.status=='NO_RESULTS'){
name = data;
$('#myTable tr:last').after('<tr id="data"><td>'+name+'</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>');
}
else if(result.status=='OK'){
if(data.name){
name = data.name;
}
if(data.hasOwnProperty('formatted_phone_number')){
phone= data.formatted_phone_number;
}
if(data.hasOwnProperty('formatted_address')){
addr = data.formatted_address;
}
if(data.hasOwnProperty('website')){
website = data.website;
}
if(data.hasOwnProperty('rating')){
rating = data.rating;
}
if(data.hasOwnProperty('geometry')){
lat =data.geometry.location.lat;
}
if(data.hasOwnProperty('geometry')){
lng = data.geometry.location.lng; }
$('#myTable tr:last').after('<tr>'+
'<td>'+name+'</td>'+
'<td>'+addr+'</td>'+
'<td>'+phone+'</td>'+
'<td>'+website+'</td>'+
'<td>'+rating+'</td>'+
'<td>'+lat+'</td>'+
'<td>'+lng+'</td>'+
'</tr>');
}
console.log(parsedata_obj.results.length);
}
var parseCsv = new uploadDealcsv();
parseCsv.getCsv();
</script>