Для обмена информацией между фронтом и бэком без аякса есть вебсокеты. Но их обычно используют только в realtime приложениях. В остальных случаях ajax нормальное решение. Почитайте ещё про SPA. Это когда сразу отдаётся статика со скриптами и стилями, а затем, по мере необходимости делаются ajax запросы к серверу и полученные ответы (обычно в формате json), разбираются в на их основе рендерится контент.
Laravel очень удобен для бэка в таких проектах.