Самым простым решением может быть загрузка целого набора данных в хранилище и использование панели инструментов разбиения на страницы для целей фильтрации, однако вы указываете, что объем данных «огромен» - это может сделать решение неэффективным ...
или
Подготовить 3 набора данных (до - пусто при запуске, фактическом и после) и перезаписать события загрузки:
- после загрузки - отобразить и загрузить следующее (или предыдущее),
- до того, как проверка загрузки следующая (или предыдущая) доступна - используйте ее, измените то, что является предыдущим, актуальным, следующим, подготовьте то, что должно быть загружено после (в фоновом режиме)
Имейте в виду, что запросы Ajax являются асинхронными, и нажатие может быть быстрее загрузки, и это должно быть предсказано в логике ... Однако это всего лишь идея