OpenLayers 3 - 如何中止挂起的 ajax 请求 - ol.source.GeoJSON.



我正在添加一个图层,其中包含 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 请求

希望这对你有帮助。

最新更新