Зависит от того, насколько долго данные выбираются из базы. Если меньше чем пинг до сервера, то разумней дождаться и передать шаблон уже отрендеренный. Если данные долго выбираются, можно отправить пользователю страницу, и показать какой-то лоадер, после чего отрисовать данные, полученные через AJAX.
Я делал даже как-то так:
1. Приходит запрос к серверу, на ответ дается скажем 100 мс.
2. Если за это время с базы ответ так и не пришел, мы отдаем юзеру страницу без данных, и URL с хешем, куда прийти за данными.
3. В это время база раздуплилась, и пришедший ответ мы ложим в кеш, так как на страницу уже не успели запрыгнуть.
4. На клиенте тем временем мы запросили наш URL с хешем, и ждем ответа от сервера, как только они появились в кеше, сервер сразу высылает ответ.
Делал это ради развлекухи, и не на PHP. На PHP такое реализовать сложнее.