Учитывая ваши текущие требования неспособности выполнять отложенную загрузку данных (нагрузка по требованию), вы довольно ограничены.
СТОРОНА СЕРВЕРА HTML
Генерация HTML на стороне сервера будет самым быстрым способом. Но даже в этом случае, если модель огромна, будет задержка. Рассмотрите возможность загрузки HTML-файла размером 5 МБ, вашему браузеру потребуется некоторое время для анализа и рендеринга чего-то такого большого.
ЕЩЕ ИСПОЛЬЗОВАНИЕ KNOCKOUT JS
Если вы все еще хотите использовать свою платформу Knockout JS, я рекомендую поместить каждый документ в IFRAME. На самом деле это не рекомендуется и может привести к дополнительной нагрузке на ваш сервер, но при правильной реализации это ускорит ваше взаимодействие с пользователем.
www.mysite.com/view/1
<div>
<iframe src="www.mysite.com/view/1/document/1"></iframe></div>
<div>
<iframe src="www.mysite.com/view/1/document/2"></iframe></div>
...
www.mysite.com/view/1/document/1
<!-- Just the single Document template -->
<table data-bind="foreach: Values">
<tr data-bind="foreach: $data">
<td data-bind="attr: {colspan: Colspan}">
<label data-bind="text: Label"></label>
<br />
<span data-bind="html: Value"></span>
</td>
</tr>
</table>
Клиентский браузер первоначально получит весь HTML-код, содержащий все IFRAME, он будет отправлять запросы для каждого асинхронно. Каждый отдельный запрос документа будет обрабатываться с использованием Knockout JS в своем собственном кадре асинхронно.
Чтобы улучшить взаимодействие с пользователем, вы даже можете настроить события загрузки для IFRAME. Событие load может изменить размер IFRAME, чтобы не было полосы прокрутки, или извлечь HTML-код из IFRAME и заменить элемент IFRAME на извлеченный HTML.