В моем приложении мне нужно выполнить несколько запросов ajax одновременно, но каждый запрос занимает различное время в зависимости от размера ответа. Для того, чтобы избежать дальнейших операций во время AJAX запроса, я хотел бы использовать Ext.LoadMask в каждом АЯКС вызова, например:ExtJS loadMask: управлять несколькими loadMask в вызовах с несколькими аяксами
for(var i=0; i<ajaxCount; i++) {
var loadMask = new Ext.LoadMask(Ext.getBody(), {msg:"Loading " + ajaxName[i]});
Ext.Ajax.request({
success: function() {
loadMask.hide();
},
failure: function() {
loadMask.hide();
}
}
}
однако, я обнаружил, что скрывать() скроет все loadMaskes в память. То, что я хочу сделать, - это скрыть только тот, что содержится в этом ajax-запросе, так что всегда есть маска до конца всех запросов.
Есть ли другой способ реализации этого?
спасибо!
хорошая идея. только в hideMask() необходимо выполнить небольшое изменение: добавьте проверку, запрашивает ли requestCouter === 0, если это скроется. в вашей функции, хотя requestCounter-- и значение становится 0, он не скроет ... – Simon
@Simon Хороший улов. Вы также можете изменить условие (> 1);) – Li0liQ