Advertisement
Guest User

Untitled

a guest
Jun 4th, 2012
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Ext.Ajax.requestQueue = [];
  2. Ext.Ajax.requestsNumber = 0;
  3. Ext.Ajax.maxConcurrentRequests = 2;
  4.  
  5. Ext.Ajax.delayedUnmask = new Ext.util.DelayedTask(function(){
  6.     Ext.getBody().unmask();
  7. });
  8.  
  9. /* Show spinner on start */
  10. Ext.Ajax.on('beforerequest', function(conn, opts) {
  11.    
  12.     if(Ext.isEmpty(opts.params)) {
  13.         opts.params = {};
  14.     }
  15.    
  16.     /* Check if more than two requests are running */
  17.     if(Ext.Ajax.requestsNumber < Ext.Ajax.maxConcurrentRequests) {
  18.         Ext.Ajax.requestsNumber++;
  19.         if(!Ext.getBody().isMasked()) {
  20.             Ext.getBody().mask('', 'loadingMask');
  21.         }
  22.     }
  23.     else {
  24.         Ext.Ajax.requestQueue.push(opts);
  25.         return false;
  26.     }
  27.    
  28. });
  29.  
  30. /* Hide spinner on complete or exception */
  31. Ext.Ajax.on('requestexception', function(connection, response, options) {
  32.    
  33.     Ext.Ajax.requestsNumber--;
  34.  
  35.     if(response.status === 403) {
  36.         /* Session timeout, need to login again */
  37.         localStorage.removeItem('loggedIn');
  38.         Ext.Ajax.requestQueue.push(options);
  39.  
  40.         return;
  41.     }
  42.    
  43.     if(Ext.Ajax.requestQueue.length === 0) {
  44.         Ext.Ajax.delayedUnmask.delay(1000);
  45.     }
  46.  
  47. });
  48.  
  49. Ext.Ajax.on('requestcomplete', function(connection, response, options) {
  50.     var responseObj = Ext.decode(response.responseText),
  51.         success = responseObj.success;
  52.    
  53.     response.JSON = responseObj || {};
  54.    
  55.     if(Ext.Ajax.requestQueue.length === 0) {
  56.         Ext.Ajax.delayedUnmask.delay(1000);
  57.     }
  58.  
  59.     Ext.Ajax.requestsNumber--;
  60.    
  61.     /* If the queue is not empty then run the remaining requests */
  62.     if(Ext.Ajax.requestQueue.length > 0 && !Ext.Ajax.stopQueue) {
  63.         Ext.Ajax.request(Ext.Ajax.requestQueue.shift());
  64.     }
  65. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement