Вот, как раз для этих целей существует библиотека, разработанная мной.
includeHTML- pure js
- загрузка по HTML-тегу или через js в любой блок
- система callback-ов
- бесконечная автоматическая подгрузка вложенных в друг друга блоков
- синхрон и асинхрон при выполнении загрузки
- корректная работа с протоколом file:/// (т.е. можно с диска/флешки html-ку запустить и она будет работать)
Простое описание: include() (аналог функции в PHP) на javascript.
Создаём сетку разметки так, как необходимо и по клику вызываем загрузку новых информационных блоков в выбранную ячейку сетки разметки (layout) или сразу целыми блоками заменяем.
Есть обработчик окончания загрузки блока: туда помещаем вызов для запроса данных.
Сейчас - делаю загрузку различных типов файлов с реестром DOM-блоков, сохраняя простоту использования и понимания библиотеки.
Буду благодарен за форк и лайк на гите!
https://jsfiddle.net/no08Lj0w/2/
PS: Случайно обнаружил, что подобная разметка сетки введена в AdSense от Google!