Podrías hacer algo como esto.
function findIdealPoints(data){
var i = 0;
while (i < data.length){
loadAspectWithinRange('aspect', data[i]['lat'], data[i]['long'], 10,
compareWithAspect);
i++;
}
En lugar de hacer una llamada Ajax para cada ocurrencia, envíe el objeto de datos a su llamada
loadAspectWithinRange('aspect',data,10,compareWithAspect)
Luego, en la solicitud de Ajax, envíe la matriz de objetos a su servicio y recupere los resultados para todos ellos en lugar de uno por uno.
$.ajax({
url:"...",
data:{
attr1:'aspect',
points: data(here is the array retrieved from "getIdealData.php")
attr2: 10
},
success:function(data){
compareWithAspect(data)
}
})
En el procesamiento del lado del servidor, cree una matriz de objetos para todos los elementos en getIdealData.php
puntos.
Esto será mejor en lugar de hacer un Ajax para cada elemento