Постараюсь описать концепцию кратко, четко и по порядку.
1)Там где есть возможность ajax в файле с шаблоном должен лежать файл ajax.php в котором можно просто подключить компонент, первоначально хотя бы так и перед ним prolog_before естественно
2)Так же в шаблоне должен быть файл ajax.js - в котором будет указываться исполняемый код js при запросе - какие параметры передавать и так далее - параметры разные необходимо передавать в зависимости от компонента
3)Помимо стандартного параметра ajax который подвешивается в Битриксе еще необходимо будет передавать путь к файлу обработчику js(например параметр ajax_path_to_js).
Суть работы - когда осуществляем вызов ajax события, по параметру ajax_path_to_js проверяем что файл существует если нет возвращаем ошибку.
Если он существует запускаем этот файл на исполнение - далее уже выполняется сам ajax
Файлы для компонентов можно сформировать вручную либо автоматически.
Автоматически суть следующая - при включении в параметрах использования ajax вызывается обработчик который создается файл ajax.js если его не существует - стандартного наполнения в котором содержится только вызов через ajax файла и возврат результата в виде html который вставляется в область с id ajax_area_newslist_default - точки опускаем, формируем из название шаблона и компонента
далее можно так же автоматически в файл template.php оборачивать код в данный div(либо не в шаблоне а в верхнем уровне оборачивать компонент в div), если он не был найден, либо в настройках компонента(в параметрах) добавить параметр в которым указывать id области для использования ajax и автоматом подставлять первоначально данное значение.
Далее создаем файл ajax.php который изначально так же стандартного содержания включающий в себя - prolog_before и вызов самого компонента
Как получить вызов самого компонента - просканировать страницу на наличие названия компонента и его шаблона, а далее все по стандарту копируем - вставляем.
Комплексный компонент стандартно можно точно так же вызывать - все равно это удет быстрее чем перезагружать всю страницу, да и композит будет подгружать данные быстрее и можно по очереди, что первое подгрузилось то первое и заменилось.
P.S. - из-за пояснений кратко не вышло
Получится так допустим для постранички включили ajax в новостях к примеру - сейчас у вас сайт грузится 2 секунды - ajax будет так же работать 2 секунды, при новом подходе в той же самой ситуации будет грузиться 0,5 секунд к примеру - что гораздо приятнее и одновременно с этим снижается нагрузка на сервер.