bitrix ajax режим в принципе устраивает - это неплохой способ писать динамичные сайты и сервисы с минимальным использованием жабаскрипта меняя всего лишь 1 параметр компонента
но вид индикации сейчас зашит в коде ядра, хочется сделать свой нормальный индикатор
BX.showWait = function(node, msg)
{
node = BX(node) || document.body || document.documentElement;
msg = msg || BX.message('JS_CORE_LOADING');
var container_id = node.id || Math.random();
var obMsg = node.bxmsg = document.body.appendChild(BX.create('DIV', {
props: {
id: 'wait_' + container_id
},
style: {
background: 'url("/bitrix/js/main/core/images/wait.gif") no-repeat scroll 10px center #fcf7d1',
border: '1px solid #E1B52D',
color: 'black',
fontFamily: 'Verdana,Arial,sans-serif',
fontSize: '11px',
padding: '10px 30px 10px 37px',
position: 'absolute',
textAlign:'center'
},
text: msg
}));
BX.ZIndexManager.register(obMsg);
BX.ZIndexManager.bringToFront(obMsg);
setTimeout(BX.delegate(_adjustWait, node), 10);
lastWait[lastWait.length] = obMsg;
return obMsg;
};
ну и может стоит задуматся над развитием такого ajax (улучшением производительности) - сейчас есть такие аналоги в других фреймворках
https://laravel-livewire.com/ https://hotwire.dev