Here we go guys with a new extension!

Ext.ux.Ajax seems to replace the old Ext.Ajax, indeed.
Well, that's correct :P

Ext.Ajax is just a singleton of Ext.data.Connection, while Ext.ux.Ajax is a singleton that uses Ext.data.Connection and Ext.ux.Deferred!
And now, here I am to show you how Ext.ux.Ajax works

Problem:

Code:
Ext.Ajax.request ({
    url: 'data.json' ,
    success: function (data) {
        Ext.Ajax.request ({
            url: 'data2.json' ,
            success: function (data2) {
                Ext.Ajax.request ({
                    url: 'data3.json' ,
                    success: function (data3) {
                        alert ("It's so hard to reach the top!");
                    } ,
                    failure: errorHandler
                });
            } ,
            failure: errorHandler
        });
    } ,
    failure: errorHandler
});
How Ext.ux.Ajax solves this problem:

Code:
Ext.ux.Ajax
    .request ('data.json')
    .then (Ext.ux.Ajax.request ('data2.json'), errorHandler)
    .then (Ext.ux.Ajax.request ('data3.json'), errorHandler)
    .then (function (data3) {
        alert ("Ah! That's much better ;)");
    }, errorHandler);
There's no magic behind this extension: in the request method, the AJAX request is wrapped into a promise (Ext.ux.Deferred instance) and it is returned, making the class chainable.

For more infos/examples/docs, see the github page: https://github.com/wilk/Ext.ux.Ajax

Soon on Sencha Market, as always

Have fun, fellas!
Wilk