Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2020, 13:26
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Как получить диапазон чисел?
Делаю пагинатор:



На основании того на какой странице находиться юзер и сколько он выбрал отображать эму элементов, мне необходимо для него сформировать эти самые элементы и отобразить. Но я никак не могу сообразить как получить диапазон чисел, с какого и по какой элемент я должен отобразить. На выходе должно быть два числа: от и до.

Например:
Кол-во отображаемых эл.: 10
Страница: 1
Я должен отобразить с 1 по 10 эл. (или с 0 по 9)
---
Кол-во отображаемых эл.: 50
Страница: 2
Я должен отобразить с 51 по 102 эл. (или с 49 по 99)
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2020, 13:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

CryNet, этим обычно занимается сервер, по крайней мере только он знает сколько будет страниц, объемы вывода и прочее. Если это и будет готовить клиент, то данные для него все равно должен давать сервер.
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2020, 13:41
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Сообщение от laimas Посмотреть сообщение
CryNet, этим обычно занимается сервер, по крайней мере только он знает сколько будет страниц, объемы вывода и прочее. Если это и будет готовить клиент, то данные для него все равно должен давать сервер.
Я с вами согласен. Но в моём случае все на фронте: генерация страниц на основе фильтров, конкретной страницы, etc.

Просто я элементарно посчитать не могу)))
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2020, 13:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Тогда я не понимаю о чем речь, ибо на странице можно оперировать только ее данными, а не страницами, о которых клиент вообще ничего не знает.
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2020, 14:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

CryNet,
<script>
const pagination = (num, length) => Array.from({length}, (_, i) => num * length - length + i)
document.write(pagination(1, 10)+"<br>");
document.write(pagination(2, 10)+"<br>");
document.write(pagination(1, 50)+"<br>");
document.write(pagination(2, 50))
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2020, 15:14
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Сообщение от laimas Посмотреть сообщение
Тогда я не понимаю о чем речь, ибо на странице можно оперировать только ее данными, а не страницами, о которых клиент вообще ничего не знает.
Сейчас объясню. Есть страничка. С бэканда приходит объект, а я на фронте на JS генерирую HTML и распихиваю данные по HTML-тегам, разбивая по 10, 20 или 50 элементов, ну и выплёвую на страницу. Отображаю пагинатор. Юзер кликнет на "отображать по 20" - отдам 20 элементов. Кликнет на 2 вторую страницу - первую 20 элементов удалю, а отображу следующую 20 и т.д.. Аналог SPA, только на чистом JS и без виртуального DOM.
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2020, 15:14
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Сообщение от рони Посмотреть сообщение
CryNet,
<script>
const pagination = (num, length) => Array.from({length}, (_, i) => num * length - length + i)
document.write(pagination(1, 10)+"<br>");
document.write(pagination(2, 10)+"<br>");
document.write(pagination(1, 50)+"<br>");
document.write(pagination(2, 50))
</script>
Спасибо, впрочем, как и всегда
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2020, 15:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от CryNet
С бэканда приходит объект
Ну так с этого и надо было начитать. А далее как рони, а выводить срез массива от выбранной страницы по номеру страницы умноженному на выбранное пользователем число отображаемых.
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2020, 15:25
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Сообщение от laimas Посмотреть сообщение
Ну так с этого и надо было начитать. А далее как рони, а выводить срез массива от выбранной страницы по номеру страницы умноженному на выбранное пользователем число отображаемых.
Я просто не мог понять, что именно вам не понятно. Прошу прощения
Ответить с цитированием
  #10 (permalink)  
Старый 25.06.2020, 15:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну так прямо написано о пагинаторе, о страницах на странице... Ну как так. А объект, это иное. Да, вы можете формировать динамически пагинатор и по фильтру из объекта, при это будет вывод первой страницы с пагинатором.

Если, к примеру, данные этого объекта поместить в SQL базу на клиенте, то работать можно чисто sql запросами, ровно также как это и делает сервер - строит пагинатор и выводит запрошенные данные. Вот с чем ассоциируется ваш первый пост.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить свойсвто объекта? Armen Общие вопросы Javascript 4 19.10.2014 06:45
Как получить значение цвета из color picker razorg1991 jQuery 1 06.10.2014 09:06
Как получить в JQUERY каждую строку как отдельный объект? Alex1233 Общие вопросы Javascript 3 22.08.2014 06:54
Как получить значение переменной из игры на HTML5? Dimaz Общие вопросы Javascript 6 10.08.2014 16:27
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 23:32