Вы уверены что у вас меняется 80% страницы? Неужели на каждой странице свой набор скриптов? Почему-то мне кажется что меняется текстовая часть и один-два скрипта.
Разделите фронт на изменяемые (динамические) и неизменяемые (статичные) части. Сначала пусть грузится статика, потом AJAX-ом подгружается динамика и отображается. При переходе с сервера загружается только динамическая часть.
Опыта нет, есть мысль
Можно сделать шаблон на LaTeX с placeholder-ами типо handlebars.
На сервере сначала обрабатывать placeholder-ы, потом генерировать pdf из LaTeX-а и отдавать пользователю.