Хотя DynamoDB будет разбивать ваши данные на страницы только в прямом направлении, вам придется иметь дело с обратным разбиением на страницы в Front End .
Для больших Tables
( размером более 1 МБ ), что делает DynamoDB
:
- Сканирование или запросы размером до 1 МБ.
- Возвращает
LastEvaluatedKey
для получения следующего набора данных или Следующая страница . Это значение используется как Ключ нумерации страниц в Front End для пагинации назад и вперед.
LastEvaluatedKey
содержит значение последнего объекта извлекается из DynamoDB во время Scan
или Query
.
Что нужно сделать (в Back End ):
- Использовать
LIMIT
свойство DynamoDB Query
, чтобы указать, что вы хотите только 20 элементов.
- Используйте
ExclusiveStartKey
свойство DynamoDB Query
, чтобы указать, что следующий набор данных будет начинаться с указанного значения этого свойства.
Что нужно сделать (в Front End ):
Сохранить массив объектов arr[]
для размещения ключей пагинации .
Сохранить переменную page
, инициализированную в -1, значение которой будет указывать на текущую страницу пользователя.
- Загрузить начальную страницу списка в пользовательский интерфейс. Теперь вместе с данными, если у вас есть
LastEvaluatedKey
, pu sh в arr
и увеличение page
.
Теперь у вас есть одна страница и page
означает, что вы находитесь на Страница 0 , а arr
содержит Ключ страницы следующей страницы.
Код Next
Кнопка должна следовать за логикой c:
Запросить ваш сервер для получения следующей страницы, используя ExclusiveStartKey = arr
[page
]
Когда появятся результаты следующей страницы, у вас снова будет еще один LastEvaluatedKey
, поэтому снова вставьте *1019* в arr
и увеличьте page
. Таким образом, вы получите изображение здесь, как мы сохраняем Page Keys .
Код Back
Кнопка должна следовать логике c:
Поскольку переменная page
указывает Текущая страница , поэтому page - 1
будет указывать на предыдущую страницу. Итак:
if (page-1
> = 0) Запросить ваш сервер для загрузки следующей страницы, используя ExclusiveStartKey = arr
[page - 1
]
Вам придется управлять, когда Back
& Next
Кнопки доступны для нажатия с помощью переменных arr[]
и page
после каждой загрузки страницы.