Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ext.Ajax.requestQueue = [];
- Ext.Ajax.requestsNumber = 0;
- Ext.Ajax.maxConcurrentRequests = 2;
- Ext.Ajax.delayedUnmask = new Ext.util.DelayedTask(function(){
- Ext.getBody().unmask();
- });
- /* Show spinner on start */
- Ext.Ajax.on('beforerequest', function(conn, opts) {
- if(Ext.isEmpty(opts.params)) {
- opts.params = {};
- }
- /* Check if more than two requests are running */
- if(Ext.Ajax.requestsNumber < Ext.Ajax.maxConcurrentRequests) {
- Ext.Ajax.requestsNumber++;
- if(!Ext.getBody().isMasked()) {
- Ext.getBody().mask('', 'loadingMask');
- }
- }
- else {
- Ext.Ajax.requestQueue.push(opts);
- return false;
- }
- });
- /* Hide spinner on complete or exception */
- Ext.Ajax.on('requestexception', function(connection, response, options) {
- Ext.Ajax.requestsNumber--;
- if(response.status === 403) {
- /* Session timeout, need to login again */
- localStorage.removeItem('loggedIn');
- Ext.Ajax.requestQueue.push(options);
- return;
- }
- if(Ext.Ajax.requestQueue.length === 0) {
- Ext.Ajax.delayedUnmask.delay(1000);
- }
- });
- Ext.Ajax.on('requestcomplete', function(connection, response, options) {
- var responseObj = Ext.decode(response.responseText),
- success = responseObj.success;
- response.JSON = responseObj || {};
- if(Ext.Ajax.requestQueue.length === 0) {
- Ext.Ajax.delayedUnmask.delay(1000);
- }
- Ext.Ajax.requestsNumber--;
- /* If the queue is not empty then run the remaining requests */
- if(Ext.Ajax.requestQueue.length > 0 && !Ext.Ajax.stopQueue) {
- Ext.Ajax.request(Ext.Ajax.requestQueue.shift());
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement