o7412369815963
Асинхронно между js и js, или js и html? второе - нет.
http://habrahabr.ru/post/182310/o7412369815963
А вы почему так против серверного/за клиентский рендеринг?
С чего вы взяли? :)
Это просто способ решения задачи.
Можно оптимизировать серверную сторону, можно клиентсткую, можно обе.
Моя практика показывает, что оптимизировать серверную сторону целесообразнее.
Я уж не говорю о том, что гарантировать определенную производительность на клиенте мы не можем (плагины, режим работы ноутбука от батареи, мощность компьютера, субъективное ощущение времени и т.п.)
Если отбросить вариант плохого кода, то остается два способа оптимизации: кеширование (на сервере, на клиенте) и правильная работа с загрузкой данных (gzip на сервере, асинхрон на клиенте), с DOM и с JS.
Например, вы выше писали о карточках книг, которые имеют шаблонное содержание, кроме даты добавления в избранное и признака добавления.
Очевидно, вся карточка, кроме этих двух полей одинакова для разных пользователей.
Следовательно, на сервере кешировать можно почти готовый заполненный шаблон без двух полей.
Заполнять поля можно как на сервере, так и на клиенте - для скорости сайта все равно где.
Если часть информации заполняется на клиенте, то на клиент можно сразу выгрузить все шаблоны (они должны быть скрыты и не будут влиять на отрисовку и практически не влияют на скорость первой загрузки).
Данные получать через json и заполнять
копию шаблона. Сначала делаем копию, потом ее заполняем - шаблон уже на клиенте, портить его не нужно и запрашивать повторно с сервера тоже не нужно.
Только когда копия заполнена данными, добавлять этот блок в DOM - так браузер делает меньше перерисовок.