Хорошо, этот вопрос довольно старый, но, возможно, есть более гибкий способ сделать это. Очень важно понимать, что Ext.Ajax - это singleton , то есть это уже уникальный класс, созданный ранее. «Расширение» синглтона не имеет особого смысла, и отдельная функция может излишне запутывать и / или ограничивать позже.
Вы можете добавить свою собственную специальную функцию запроса Ajax, например:
Ext.Ajax.dateRequest = function(myObj){
// set the pre-configured parameters here
myObj.url = 'ajax.php';
myObj.params = { action: 'getDate'};
myObj.method = 'GET';
// call the original request function with the modified config object
this.request(myObj);
};
Так что теперь вы можете изменить ваши повторные запросы Ajax на:
Ext.Ajax.dateRequest({
success: yourSuccessFunction
,failure: yourFailureFunction
});
Преимущество этого заключается в том, что вы можете легко добавлять предварительно сконфигурированные параметры в функцию «dateRequest», И вы можете добавлять дополнительные параметры в каждый запрос Ajax (например, в другое время ожидания), не переписывая ничего.
РЕДАКТИРОВАТЬ: Yikes! Первоначально я опубликовал решение ниже, которое, как я думал, «клонирует» Ext.Ajax, но оно по-прежнему просто отменяет синглтон.
Это цитата из "Саки" (Ext guru) пару лет назад. Он ссылается на функцию клона, которую он написал для обычных объектов / массивов:
Функция clone ни в коем случае не предназначена для клонирования классов или
созданные экземпляры Ext объектов. Это практически невозможно, так как эти установки
обработчики событий почти всегда, поэтому клонирование определенно приведет к
непредсказуемые результаты.
Синглтон является "созданным экземпляром Ext-объекта" и поэтому не может быть легко расширен или клонирован. Если вы не хотите связываться с Ext.Ajax напрямую, вы можете создать функцию (как уже упоминалось). Вот несколько более гибкая форма:
function dateRequest(myObj){
myObj.url = 'ajax.php';
myObj.params = { action: 'getDate'};
myObj.method = 'GET';
return Ext.Ajax.request(myObj);
}
Затем назовите его с dateRequest({success: successFunc, failure: failFunc})
.