У меня есть более общий вопрос о том, как реализовать ленивую загрузку в моих проектах для списков, сеток и т. Д. Мой вопрос не в конкретной структуре или языке, потому что Я разрабатываю различные типы проектов с помощью C#, java, android, winforms и т. Д.Реализация ленивой загрузки списков с БД, клиентом и бэкендом
Мой вопрос: как реализовать эту ленивую модель загрузки в среде RESTful?
Например,, У меня есть база данных с около 2 миллионами данных. Пользователь выбирает несколько фильтров на стороне клиента, а ответ сервера - 100 000 записей. Это очень важно, чтобы показать им все, что время для «загрузки и рендеринга» элементов в элементе управления списком занимает несколько минут (в плохие дни). Лучший способ - показать пользователю первые 200 элементов и загрузить необходимые блоки по мере необходимости.
Другой пример - поиск изображений на мобильном устройстве. Если результат поиска составляет около 10.000, мобильный трафик для загрузки изображения будет взрываться. Поэтому лучше отобразить до 20 записей, и если пользователь прокручивает вниз, например, загружаются следующие 20.
Итак, как я могу архивировать это на стороне backend/db/client? К сожалению, я не могу запросить «выберите 200 до 400 из таблицы, где ...».
В некоторых внешних API-интерфейсах я могу отправить «токен страницы», чтобы получить следующий блок элементов. Но как узнать, на какую «страницу» пользователь просит?
Плохой способ, который я пробовал, - загрузить с каждым запросом всю коллекцию (100 000 записей в первом примере) и обслуживать только ту часть, которая необходима. Но это очень важно, когда количество клиентов расширяется, и 10 000 клиентов делают это каждую минуту в серверном времени.