Abort XMLHttpRequest on tile.destroy for WFS. The loadURL function now returns a request object. Thanks pgiraud for the fix. r=crschmidt (closes #964)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@5539 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2007-12-20 17:28:51 +00:00
parent 59dd8b2d99
commit 2d1099d60d
3 changed files with 43 additions and 12 deletions

View File

@@ -45,10 +45,16 @@ OpenLayers.nullHandler = function(request) {
* uri - {String} URI of source doc
* params - {String} Params on get (doesnt seem to work)
* caller - {Object} object which gets callbacks
* onComplete - {Function} callback for success
* onFailure - {Function} callback for failure
* onComplete - {Function} Optional callback for success. The callback
* will be called with this set to caller and will receive the request
* object as an argument.
* onFailure - {Function} Optional callback for failure. In the event of
* a failure, the callback will be called with this set to caller and will
* receive the request object as an argument.
*
* Both callbacks optional (though silly)
* Returns:
* {OpenLayers.Ajax.Request} The request object. To abort loading, call
* request.transport.abort();
*/
OpenLayers.loadURL = function(uri, params, caller,
onComplete, onFailure) {
@@ -64,13 +70,15 @@ OpenLayers.loadURL = function(uri, params, caller,
: OpenLayers.nullHandler;
// from prototype.js
new OpenLayers.Ajax.Request(uri,
{ method: 'get',
parameters: params,
onComplete: success,
onFailure: failure
}
);
return new OpenLayers.Ajax.Request(
uri,
{
method: 'get',
parameters: params,
onComplete: success,
onFailure: failure
}
);
};
/**

View File

@@ -28,6 +28,12 @@ OpenLayers.Tile.WFS = OpenLayers.Class(OpenLayers.Tile, {
*/
url: null,
/**
* Property: request
* {OpenLayers.Ajax.Request}
*/
request: null,
/** TBD 3.0 - reorder the parameters to the init function to put URL
* as last, so we can continue to call tile.initialize()
* without changing the arguments.
@@ -57,6 +63,9 @@ OpenLayers.Tile.WFS = OpenLayers.Class(OpenLayers.Tile, {
this.destroyAllFeatures();
this.features = null;
this.url = null;
if(this.request) {
this.request.transport.abort();
}
},
/**
@@ -97,7 +106,7 @@ OpenLayers.Tile.WFS = OpenLayers.Class(OpenLayers.Tile, {
* failure - {function}
*/
loadFeaturesForRegion:function(success, failure) {
OpenLayers.loadURL(this.url, null, this, success);
this.request = OpenLayers.loadURL(this.url, null, this, success);
},
/**