summaryrefslogtreecommitdiff
path: root/lib/dojo/request/watch.js.uncompressed.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/request/watch.js.uncompressed.js')
-rw-r--r--lib/dojo/request/watch.js.uncompressed.js109
1 files changed, 0 insertions, 109 deletions
diff --git a/lib/dojo/request/watch.js.uncompressed.js b/lib/dojo/request/watch.js.uncompressed.js
deleted file mode 100644
index 2b7722816..000000000
--- a/lib/dojo/request/watch.js.uncompressed.js
+++ /dev/null
@@ -1,109 +0,0 @@
-define("dojo/request/watch", [
- './util',
- '../errors/RequestTimeoutError',
- '../errors/CancelError',
- '../_base/array',
- '../_base/window',
- '../has!host-browser?dom-addeventlistener?:../on:'
-], function(util, RequestTimeoutError, CancelError, array, win, on){
- // avoid setting a timer per request. It degrades performance on IE
- // something fierece if we don't use unified loops.
- var _inFlightIntvl = null,
- _inFlight = [];
-
- function watchInFlight(){
- // summary:
- // internal method that checks each inflight XMLHttpRequest to see
- // if it has completed or if the timeout situation applies.
-
- var now = +(new Date);
-
- // we need manual loop because we often modify _inFlight (and therefore 'i') while iterating
- for(var i = 0, dfd; i < _inFlight.length && (dfd = _inFlight[i]); i++){
- var response = dfd.response,
- options = response.options;
- if((dfd.isCanceled && dfd.isCanceled()) || (dfd.isValid && !dfd.isValid(response))){
- _inFlight.splice(i--, 1);
- watch._onAction && watch._onAction();
- }else if(dfd.isReady && dfd.isReady(response)){
- _inFlight.splice(i--, 1);
- dfd.handleResponse(response);
- watch._onAction && watch._onAction();
- }else if(dfd.startTime){
- // did we timeout?
- if(dfd.startTime + (options.timeout || 0) < now){
- _inFlight.splice(i--, 1);
- // Cancel the request so the io module can do appropriate cleanup.
- dfd.cancel(new RequestTimeoutError('Timeout exceeded', response));
- watch._onAction && watch._onAction();
- }
- }
- }
-
- watch._onInFlight && watch._onInFlight(dfd);
-
- if(!_inFlight.length){
- clearInterval(_inFlightIntvl);
- _inFlightIntvl = null;
- }
- }
-
- function watch(dfd){
- // summary:
- // Watches the io request represented by dfd to see if it completes.
- // dfd: Deferred
- // The Deferred object to watch.
- // response: Object
- // The object used as the value of the request promise.
- // validCheck: Function
- // Function used to check if the IO request is still valid. Gets the dfd
- // object as its only argument.
- // ioCheck: Function
- // Function used to check if basic IO call worked. Gets the dfd
- // object as its only argument.
- // resHandle: Function
- // Function used to process response. Gets the dfd
- // object as its only argument.
- if(dfd.response.options.timeout){
- dfd.startTime = +(new Date);
- }
-
- if(dfd.isFulfilled()){
- // bail out if the deferred is already fulfilled
- return;
- }
-
- _inFlight.push(dfd);
- if(!_inFlightIntvl){
- _inFlightIntvl = setInterval(watchInFlight, 50);
- }
-
- // handle sync requests separately from async:
- // http://bugs.dojotoolkit.org/ticket/8467
- if(dfd.response.options.sync){
- watchInFlight();
- }
- }
-
- watch.cancelAll = function cancelAll(){
- // summary:
- // Cancels all pending IO requests, regardless of IO type
- try{
- array.forEach(_inFlight, function(dfd){
- try{
- dfd.cancel(new CancelError('All requests canceled.'));
- }catch(e){}
- });
- }catch(e){}
- };
-
- if(win && on && win.doc.attachEvent){
- // Automatically call cancel all io calls on unload in IE
- // http://bugs.dojotoolkit.org/ticket/2357
- on(win.global, 'unload', function(){
- watch.cancelAll();
- });
- }
-
- return watch;
-});