Javascript Jquery延迟+;AJAX
有人能告诉我为什么这不会更新AJAX中的数据对象吗?如果我在geojson中有多个功能,那么在循环使用所有geojson功能时,它往往只保存一个功能记录。因此,如果geojsonFeatures有3条记录,则会将3条记录推送到ajaxDeferred中,但所有三条记录的数据都相同 数据:{ id:UpdatedLayerGojsonid, 表:更新的LayerGeoJSONTable, geom:更新的图层几何 }Javascript Jquery延迟+;AJAX,javascript,jquery,ajax,jquery-deferred,Javascript,Jquery,Ajax,Jquery Deferred,有人能告诉我为什么这不会更新AJAX中的数据对象吗?如果我在geojson中有多个功能,那么在循环使用所有geojson功能时,它往往只保存一个功能记录。因此,如果geojsonFeatures有3条记录,则会将3条记录推送到ajaxDeferred中,但所有三条记录的数据都相同 数据:{ id:UpdatedLayerGojsonid, 表:更新的LayerGeoJSONTable, geom:更新的图层几何 } var geojsonFeatures=geojson.features; va
var geojsonFeatures=geojson.features;
var ajaxDeferred=[];
对于(var a=0;a
您在代码中的什么地方推送记录?您在哪里/如何使用ajaxDeferred
数组?不要使用所有这些变量
var geojsonFeatures = geojson.features;
var ajaxDeferred = [];
for(var a = 0; a < geojsonFeatures.length; a++){
updatedLayerGeojson = geojsonFeatures[a].geometry;
updatedLayerGeojson.crs = {
"type": "name",
"properties": {
"name": "epsg:4326"
}
};
updatedLayerGeojsonGeometry = JSON.stringify(updatedLayerGeojson);
updatedLayerGeojsonId = geojsonFeatures[a].properties.gid;
updatedLayerGeojsonTable = geojsonFeatures[a].properties.layer_table;
ajaxDeferred.push(
$.ajax({
url: window.location.origin + '/csrfToken',
success: function(response) {
$.ajax({
url: '/maplayers/saveEditedLayerRecord',
type:"post",
data: {
id: updatedLayerGeojsonId,
table: updatedLayerGeojsonTable,
geom: updatedLayerGeojsonGeometry
},
beforeSend: function(xhr, settings){
xhr.setRequestHeader('X-CSRF-Token', response._csrf);
},
success: function(data){
if(data){
numberOfEditedLayersCompleted++;
if(numberOfEditedLayers == numberOfEditedLayersCompleted){
removeLayers();
editableLayers.clearLayers();
editedLayer = false;
numberOfEditedLayers = 0;
numberOfEditedLayersCompleted = 0;
}
}
},
cache: false
});
}
})
);