我正在添加一个图层,其中包含 ol.source.GeoJSON 在 moveend 上请求的源。如果在请求完成之前再次平移地图,如何中止挂起的 ajax 请求?
map.on('moveend', function(){
map.removeLayer(highlightedLayer);
var theSource = new ol.source.GeoJSON({
url: 'wfs.php?bbox='+bbox
});
var highlightedSource = new ol.source.GeoJSON({});
theSource.on('change', function(e){
if(theSource.getState() == 'ready'){
var features = theSource.getFeatures();
$.each(features, function(k,v){
if(v.n.filter == 'include'){
highlightedSource.addFeature(features[k]);
}
});
highlightedLayer.setSource(highlightedSource);
map.addLayer(highlightedLayer);
}
});
});
与其直接在移动端添加图层,不如使用 ajax 获取 GeoJson(可以取消),并且在组合时使用对象参数而不是 url 添加 geojson 数据。
以下是GeoJSON源代码的文档:http://openlayers.org/en/v3.4.0/apidoc/ol.source.GeoJSON.html?unstable=true
以下是取消 ajax 请求的方法:使用 jQuery 中止 Ajax 请求
希望这对你有帮助。