powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Пагинация, как правильно, как выбрать середину и какие варианты есть?
66 сообщений из 66, показаны все 3 страниц
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597124
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Дошло дело до вэб, и встал вопрос "а как же правильно отображать 'табличные данные'?". Мне это видится так.

Конечно же с фиксированным количеством строк на странице, ну или динамически отталкиваться от разрешения экрана и все равно фиксировать количество.
Дальше интересней - как же загружать и отображать данные:
1) Грузить сразу всё, и существующими средствами javascript типа DataTables, Paginations или другими подобными, отображать. Такой вариант думаю подходит для данных, где не более 150-200 строк. Решения видел реально красивые и афигеновские, с различными сортировками, динамическим поиском, но требуют сразу все данные, а если их очень много???...
2) Грузить данные равные количеству строк одной страницы. А вот как формировать пагинацию на клиенте? Вручную можно, но нет желания изобретать велосипед. Попадались ранее варианты, которым не придал значения из-за тяжести реализации. Должно быть что-то крайне простое. Такое куда при создании в json передаешь значения типа:
- всего записей
- всего строк
- всего страниц
- текущая страница
- и собственно сами данные
Подскажите что есть из готовых лайт-вариантов? Куда смотреть и где копать. Или я в корне ошибаюсь?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,
брать готовое типа:
https://demos.telerik.com/kendo-ui/grid/index
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597160
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,

Можете глянуть как пагинация сделана здесь http://www.jhipster.tech
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597169
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,

Spring data jpa .
Из коробки пагинация, фильтрация и REST-API ( HATEOAS )
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597312
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, интересно, спасибо, буду смотреть.

при первом приближении понравился вариант
Petro123Imperous,
брать готовое типа:
https://demos.telerik.com/kendo-ui/grid/index
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597321
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Imperousо, интересно, спасибо, буду смотреть.

при первом приближении понравился вариант
Petro123Imperous,
брать готовое типа:
https://demos.telerik.com/kendo-ui/grid/index У меня есть подозрение (посмотрел в отладчике хрома), что он грузит данные целиком. Для современных браузеров это не страшно.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597381
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,
На данном этапе тебе не нужно. А потом оптимизируешь или другую таблу возьмешь.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597406
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример разбивки на страницы в памяти:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public static <T> List<List<T>> chunk(final Iterable<T> iterable, final int size) {
        int index = 0;
        int length = size(iterable);
        final List<List<T>> result = new ArrayList<List<T>>(length / size);
        while (index < length) {
            result.add(new ArrayList(iterable).subList(index, Math.min(length, index + size)));
            index += size;
        }
        return result;
    }



С уважением, Валентин
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597417
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovПример разбивки на страницы в памяти:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public static <T> List<List<T>> chunk(final Iterable<T> iterable, final int size) {
        int index = 0;
        int length = size(iterable);
        final List<List<T>> result = new ArrayList<List<T>>(length / size);
        while (index < length) {
            result.add(new ArrayList(iterable).subList(index, Math.min(length, index + size)));
            index += size;
        }
        return result;
    }



С уважением, Валентин

Зачем велосипедить? https://google.github.io/guava/releases/15.0/api/docs/com/google/common/collect/Iterators.html#partition(java.util.Iterator, int)
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597420
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод size() забыл добавить.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public static int size(final Iterable<?> iterable) {
        if (iterable instanceof Collection) {
            return ((Collection) iterable).size();
        }
        int size;
        final Iterator<?> iterator = iterable.iterator();
        for (size = 0; iterator.hasNext(); size += 1) {
            iterator.next();
        }
        return size;
    }



С уважением, Валентин
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597430
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulImperous,

Spring data jpa .
Из коробки пагинация, фильтрация и REST-API ( HATEOAS )+ сортировка по указанному полю
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #39597431
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa....Для современных браузеров это не страшно.
Когда 3-и года назад обсуждали пагинацию, разработчик системы при провел тест зугрузки > 100 000 записей из справочника в IE. IE даже не поперхнулся, компьютер даже не заметил (комп был не сильно мощный). ===> т.ч. разработчик принял решение, что пагинация даром не нужна, а будет нужна, тогда он ее и реализует )))

AFAIK Т.ч. такой вариант тоже имеет право на жизнь.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033251
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
Метод size() забыл добавить.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public static int size(final Iterable<?> iterable) {
        if (iterable instanceof Collection) {
            return ((Collection) iterable).size();
        }
        int size;
        final Iterator<?> iterator = iterable.iterator();
        for (size = 0; iterator.hasNext(); size += 1) {
            iterator.next();
        }
        return size;
    }




С уважением, Валентин

только этот iterator сначала надо посчитать = собрать в него ВСЕ возможные строки
и почему то именно этот (основной) момент тут не обсуждается...

допустим там 5 таблиц с миллионами записей
и надо свести их вместе + сделать тяжёлый фильтр
А потом, чтобы показать кол-во страниц, надо посчитать кол-во строк после этого сложного фильтра...
...которых там могут быть миллионы
Конечно легко взять одну таблицу и вытащить из неё кол-во, а потом поделить на размер страницы.
Очень интересно тут выводить этот невероятно сложный алгоритм...
А вот как решают реальную проблему, из реального мира?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033284
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,
JPA 2.2 появился скроллируемый стрим
getResultStream()
В шарпе это уже несколько лет.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033598
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous
Привет!

Дошло дело до вэб, и встал вопрос "а как же правильно отображать 'табличные данные'?". Мне это видится так.

Конечно же с фиксированным количеством строк на странице, ну или динамически отталкиваться от разрешения экрана и все равно фиксировать количество.
Дальше интересней - как же загружать и отображать данные:
1) Грузить сразу всё, и существующими средствами javascript типа DataTables, Paginations или другими подобными, отображать. Такой вариант думаю подходит для данных, где не более 150-200 строк. Решения видел реально красивые и афигеновские, с различными сортировками, динамическим поиском, но требуют сразу все данные, а если их очень много???...
2) Грузить данные равные количеству строк одной страницы. А вот как формировать пагинацию на клиенте? Вручную можно, но нет желания изобретать велосипед. Попадались ранее варианты, которым не придал значения из-за тяжести реализации. Должно быть что-то крайне простое. Такое куда при создании в json передаешь значения типа:
- всего записей
- всего строк
- всего страниц
- текущая страница
- и собственно сами данные
Подскажите что есть из готовых лайт-вариантов? Куда смотреть и где копать. Или я в корне ошибаюсь?


Есть метод для разбивки списка на страницы.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    public static <T> List<List<T>> chunk(final Iterable<T> iterable, final int size) {
         if (size <= 0) {
            return newArrayList();
         }
         return chunk(iterable, size, size);
    }

    public static <T> List<List<T>> chunk(final Iterable<T> iterable, final int size, final int step) {
        if (step <= 0 || size < 0) {
            return newArrayList();
        }
        int index = 0;
        int length = size(iterable);
        final List<List<T>> result = new ArrayList<>(size == 0 ? size : (length / size) + 1);
        while (index < length) {
            result.add(newArrayList(iterable).subList(index, Math.min(length, index + size)));
            index += step;
        }
        return result;
    }

    public static <T> List<List<T>> chunkFill(final Iterable<T> iterable, final int size, final T fillValue) {
        if (size <= 0) {
            return newArrayList();
        }
        return chunkFill(iterable, size, size, fillValue);
    }

    public static <T> List<List<T>> chunkFill(final Iterable<T> iterable, final int size,
        final int step, final T fillValue) {
        if (step <= 0 || size < 0) {
            return newArrayList();
        }
        final List<List<T>> result = chunk(iterable, size, step);
        int difference = size - result.get(result.size() - 1).size();
        for (int i = difference; 0 < i; i--) {
            result.get(result.size() - 1).add(fillValue);
        }
        return result;
    }



Хорошего вам дня!
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033687
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вы чудаки-некроманты. Автор спрашивал еще в 2018 году.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033700
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем темы плодить, если есть такая же
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033704
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо я еще подкину вопрос.

Как известно база данных - это источник живой. Динамичный. И пока вы читали страницу №1,
в определенном порядке, страница №1 успела обновится. В нее вставились или удалились строки.
Далее вы нажали PageDown...

Вопрос. Как вы отработаете эту ситуацию? Вариантов много. Но предложение - прогрузить всю таблицу
в коллекцию
- мы не будем расматривать. Это глупое предложение.

Равно как и прогрузить всё на клиент я тоже не буду рассматривать.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033709
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Все придумано до нас.
Показываете следующую пачку записей.
Образец гугл поиск
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033736
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот вопрос вобщем-то затрагивает изоляцию транзакций. Как сделаете - так и будет. Но 99% пагинаций
что я видел - делали на каждую новоу страницу - новый курсор и неявно BEGIN/END.

Как следствие - либо потерянные records при PageDown либо фантомы.

Вопрос как с этим работает хибернейт - это домашнее задание. Посмотрите сами.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033762
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как известно база данных - это источник живой. Динамичный. И пока вы читали страницу №1,
в определенном порядке, страница №1 успела обновится. В нее вставились или удалились строки.
Далее вы нажали PageDown...

Вопрос. Как вы отработаете эту ситуацию?

ну обычно через вебсокеты вылазит сообщение "появились новые сообщения. Обновите страницу"
или вообще ничё не вылазит, как на форумах
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033782
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
mayton
Как известно база данных - это источник живой. Динамичный. И пока вы читали страницу №1,
в определенном порядке, страница №1 успела обновится. В нее вставились или удалились строки.
Далее вы нажали PageDown...

Вопрос. Как вы отработаете эту ситуацию?

ну обычно через вебсокеты вылазит сообщение "появились новые сообщения. Обновите страницу"
или вообще ничё не вылазит, как на форумах

Чтобы через вебсокет что-то вылезло - это еще надо запрограммировать. Тоесть то что вы сказали
это работает. Но это просто часть стека. Самая мясная часть еще не обсуждалась.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033787
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, в зависимости от того, что надо, подход может быть разным, но при скроллинге вниз запросто вешается listener, который шлёт AJAX-запрос
другой вариант с другой стороны - при изменениях на данном клиенте (например) вешается флаг об изменениях и шлётся всем, кто страницу эту смотрит
а можно вообще страницу обновлять (или кусок её)
но чаще всё это нецелесообразный гемор.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033788
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин... напиши на back как это сделать.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033796
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
другой вариант с другой стороны - при изменениях на данном клиенте (например) вешается флаг об изменениях и шлётся всем, кто страницу эту смотрит
а можно вообще страницу обновлять (или кусок её)
а можно вставить новые данные и выделить их цветом или фоном - как подскажет фантазия
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033797
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Блин... напиши на back как это сделать.
какие проблемы?
озвучь , чтоб их и осветить
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033800
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
mayton
Блин... напиши на back как это сделать.
какие проблемы?
озвучь , чтоб их и осветить

Уже озвучено - работа с транзакциями при пагинации, в частности проблема phantom records
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033812
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
работа с транзакциями при пагинации, в частности проблема phantom records
пожалуйста конкретнее.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033822
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
забыл ник
работа с транзакциями при пагинации, в частности проблема phantom records
пожалуйста конкретнее.

Ну профи всегда видно за версту
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033826
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
mayton
Блин... напиши на back как это сделать.
какие проблемы?
озвучь , чтоб их и осветить

Окей. Как ты предлагаешь определять что данные изменились при переходе со страницы 1 на страницу 2 ?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033840
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Окей. Как ты предлагаешь определять что данные изменились при переходе со страницы 1 на страницу 2 ?
изменились где?
на исходной странице или на целевой?
чем конкретнее поставлена задача - тем точнее решение.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033850
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. У тебя page - на 20 строк.
Ты показал юзеру 1 page. В это время в базу вставилась новая строка
которая должна быть отображена в 19 позиции 1 страницы.

Далее юзер нажал Page Down...
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033862
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хорошо. У тебя page - на 20 строк.
Ты показал юзеру 1 page. В это время в базу вставилась новая строка
которая должна быть отображена в 19 позиции 1 страницы.
тут надо для начала четко определиться - кто первый встал, т.е. чьи тапки...

и определиться с какой частой могут обновляться данные . можно , как вариант , фиксировать время обновления, и сравнивать с временем отправки данных клиенту, и после получения данных клиентом делать запрос о наличии разницы во времени . если данные постоянно меняются - то надо определиться насколько важно иметь реальные - потому как нет смысла видеть мелькание данных.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033864
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы можно клиенту слать изменённые данные в отдельное окошко (если эти изменения на другой странице
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033865
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Частота вообще непричем. Есть событие. Пользователь нажал PageDown.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033866
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть база. И она иногда меняется. Вот такое у нее поведение. И есть пользователь для которого важно
прочитать все строки при пагинации.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033868
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
вадя
пропущено...
какие проблемы?
озвучь , чтоб их и осветить

Окей. Как ты предлагаешь определять что данные изменились при переходе со страницы 1 на страницу 2 ?

На бэке есть
Код: java
1.
List list = getPage(numPage)


Клиент только дает номер страницы.
Что туда попадет никто не знает наперед.
Что тут сложного я не понял.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033869
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть база. И она иногда меняется. Вот такое у нее поведение. И есть пользователь для которого важно
прочитать все строки при пагинации.

Ну в чем-то вадя прав - тут сильно зависит от юскейса, нельзя вставить флаг который будет магическим образом менять поведение. Скорее тут надо знать возможные опции и как их имплементить, но код тут не самый тривиальный, скоро стас узнает про уровни изоляции транзакций и совсем уйдет из профессии)
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033870
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Частота вообще непричем. Есть событие. Пользователь нажал PageDown.
за время отправки может быть внесено 20 строк - вопрос что долен увидеть клиент, вот тогда и буде решение.
даже если одна строка - вопрос что необходимо видеть клиенту?
тогда и будем решать как это сделать.
отобразить с изменённой строки? а если добавили в первую?
отобразить все изменённые строки выше текущей страницы?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033871
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть база. И она иногда меняется. Вот такое у нее поведение. И есть пользователь для которого важно
прочитать все строки при пагинации.

Это невозможное требование. ВСЕ строки при их динамике ежесекундной.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033872
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
Скорее тут надо знать возможные опции и как их имплементить, но код тут не самый тривиальный,
во-во!
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033873
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как по мне так самое трудное тут - это правильно сформулировать ТЗ для такого случая.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033875
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть база. И она иногда меняется. Вот такое у нее поведение. И есть пользователь для которого важно
прочитать все строки при пагинации.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033877
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть база. И она иногда меняется. Вот такое у нее поведение. И есть пользователь для которого важно
прочитать все строки при пагинации.

Что такое все строки, если во время чтения половину удалили?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033879
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - тоже кейс. Удаление. Апдейт. И вставка строк во время пагинации.

Я даю тему обсудить как вы будете решать ее. Хоть на хибернейте. Хоть на JDBC.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033882
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Нет юз кейс или ВИ (вариант использования) это ты должен словами на пальцах описать что должен сделать ГУИ или бэк для юзверя с теми 50 записей которые удалены.
Пока ты промолчал.
Показать? Тогда их надо все скачачать.
Нет? Тогда проще.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033883
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Это - тоже кейс. Удаление. Апдейт. И вставка строк во время пагинации.

Я даю тему обсудить как вы будете решать ее. Хоть на хибернейте. Хоть на JDBC.
а я прошу дать четкое указание что должен увидеть клиент/юзер/оператор
т.е. какой алгоритм я должен реализовать.
я не прошу как его реализовать - я прошу что должен реализовать.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033888
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если грубо
есть метод в котором производится crud. единственный метод перед базой.
в этом методе я могу сделать рассылку всем заинтересованным - с отображение изменений.
для этого мне не нужны обращения всех заинтересованных. мне нужен просто их список.

вопрос - что должны видеть заинтересованные?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033889
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
юзер смотрит записи с 21 по 40
вставили 19 - что должен увидеть смотрящий?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033897
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот ты юайщик. По крайней мере это следует из твоих постов. Или фулстек неважно.

Придумай как сделать так чтобы юзер не потерял ни одной Records при пагинации.

Я ТЗ тебе тут не дам.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033898
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Придумай как сделать так чтобы юзер не потерял ни одной Records при пагинации.
я когда начинаю такое делать возникают куча вариантов - вот какой из них выбрать это какая проблема...
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033904
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай начнем с простого. Чтоб фиксить эти аномалии у нас есть два подхода.

- Детктировать изменения в страницах прошедшие с момента просмотра 1-й страницы
- Отказаться от изменений на момент пагинации вообще (тразнакции БД и изоляции) и предупредить
пользователя что он работает со снапшотом. Если захочет увдеть явно изменения - тыцнет батон
и будет также предупрежден о том что нумерация может съехать и надо смотреть сначала.

Мне подходят оба. Только надо обсудить как их делать.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033916
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Третий вариант в веб самый простой.
22259498
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033923
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне подходят оба. Только надо обсудить как их делать.
я предложил вариант
вадя
есть метод в котором производится crud. единственный метод перед базой.
в этом методе я могу сделать рассылку всем заинтересованным - с отображение изменений.
для этого мне не нужны обращения всех заинтересованных. мне нужен просто их список.

если для вэб - то websocket.
в любом месте кода можно вызвать метод отправки данных. в этом же методе определить кому отправлять.
практически как system.out.print(), только с указанием кому ....
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033973
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну вот ты юайщик. По крайней мере это следует из твоих постов. Или фулстек неважно.

Придумай как сделать так чтобы юзер не потерял ни одной Records при пагинации.

в чём проблема то при нажатии отправить запрос и получить свой JSON с изменениями?
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033979
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расскажите как вы будете работать с базой данных. Какие запросы будете писать.
Как будете вести учот страниц и записей на странице. Как будете обрабатывать
вариант №1 и №2 о которых я писал.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033986
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос отправит № сущности (клиент, например), id, время последнего обновления
если по нему были изменения, то вернёт их.
учёт ведёт БД.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033987
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Расскажите как вы будете работать с базой данных. Какие запросы будете писать.
Как будете вести учот страниц и записей на странице. Как будете обрабатывать
вариант №1 и №2 о которых я писал.
тогда расскажи что должно отображаться
будем считать, что нажатие на некстпайдж есть событие нулевой длительности для всей системы клиент-сервер
до нажатия старые данные, после - новые.
таким образом получаем "статическую" систему
смотрели смотрели вторую страницу , нажали, смотрим новую страницу
что должно произойти со второй страницей , когда на предыдущих произошло:
- добавили одну запись
- добавили несколько записей
- изменили одну запись
- изменили несколько записей
- удалили одну запись
- удалили несколько записей
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033994
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пару лет назад здесь же задавался аналогичным вопросом. У меня были пользователи, которые периодически хотели получать N-многотысячную страницу. Решение подсмотрел тут
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033997
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1610
Пару лет назад здесь же задавался аналогичным вопросом. У меня были пользователи, которые периодически хотели получать N-многотысячную страницу. Решение подсмотрел тут
это отдельная проблема. пока она тут не рассматривается.
ну а по
alex1610
N-многотысячную страницу.
я бы послал таких заказчиков.
это глупая затея.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40033999
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1610
Пару лет назад здесь же задавался аналогичным вопросом. У меня были пользователи, которые периодически хотели получать N-многотысячную страницу. Решение подсмотрел тут


Оно вообще не про обсуждаемую тему, и при этом чувак откровенно гонит:
- случаи когда бы в UI использовалась сортировка по PK крайне редки, в основном используется что-то более явное и понятное пользователю
- нет вообще никаких гарантий, что видимость определенных данных пользователю хоть как-то коррелирует с PK
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40034009
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

работа с базой - это отдельная задача, причём очень глобальная.
её решение будет строится от ответов - на то , что я задал 22259773
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40034010
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов,

Речь идет об организации пагинации, а не фильтраци и сортировки. Все там нормально. Но, конечно, так делать нужно, когда есть необходимость.

Ps я действительно ошибся топиком.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40034011
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1610,

ошибка не велика - если продолжать к этой проблеме подойдём...
меня там(по ссылке на хабр) смутило - что не объясняется что таблица - это куча.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40034093
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java вообще никогда не видит никаких таблиц. Вся информация о мире таблиц представлена
имплементациями драйверов семества JDBC.

В частности интерфесом java.sql.ResultSet и ORM также работает.
...
Рейтинг: 0 / 0
Пагинация, как правильно, как выбрать середину и какие варианты есть?
    #40034098
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
java вообще никогда не видит никаких таблиц. Вся информация о мире таблиц представлена
имплементациями драйверов семества JDBC.

В частности интерфесом java.sql.ResultSet и ORM также работает.
а кто с этим спорит?
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Пагинация, как правильно, как выбрать середину и какие варианты есть?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]