<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Разумная пагинация</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html</link>
    <description>Доброго времени суток уважаемые форумчане!&lt;br&gt;&lt;br&gt;Вопрос мой заключается вот в чём. Я довольно давно занимаюсь простенькой разработкой WEB приложений и сайтов на php и всегда пытаюсь что-либо делать по другому и усовершенствовать свой код, сделать его более правильным и функциональным. Сейчас делая очередной проект меня посетила идея об изменении принципа пагинации. Как обычно происходила пагинация в моих проектах? &lt;br&gt;1. Был обычный запрос в базу данных с количеством записей,  делился на количество записей на странице и формировалось общее количество ссылок на страницы&lt;br&gt;2. Ссылки с переходом по GET на другие страницы передавали номер страницы для дальнейшего запроса в базу и среза offset, после чего выдавал новый срез данных и формировались страницы.&lt;br&gt;&lt;br&gt;Всё просто до безобразия.&lt;br&gt;Но тут мне понадобилось сделать различные фильтры и поиск по всем(или определённым) полям, необходимой информации и динамически выводить это всё в таблицу. С этим проблем не возникло:&lt;br&gt;1. JS отслеживал ввод в поле поиска, селекты и выбор </description>

<item>
    <title>Разумная пагинация (dcc0)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#17</link>
    <pubDate>Wed, 14 Dec 2022 09:15:41 GMT</pubDate>
    <description>Доброго!&lt;br&gt;Всю тему не читал.&lt;br&gt;Самая простая пагинация делается с помощью инкремента и декремента переменной, которая передаётся методом POST или GET в качестве номера страницы для текстового файла или ID, если вывод из БД.&lt;br&gt;Данный подход крайне прост, реализуется в PHP, но в то же время - это, скорее всего, самый надёжный подход. &lt;br&gt;&lt;br&gt;В Html5 фактитически уже есть тег для пагинации:&lt;br&gt;https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_number&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (Doctorrr)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#16</link>
    <pubDate>Tue, 06 Dec 2022 10:19:22 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; Я довольно давно занимаюсь простенькой разработкой WEB приложений и сайтов на php&lt;br&gt;&amp;gt; около 10 лет &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Тогда у меня появляется разумный(как мне кажется) вопрос, неужели нельзя создать динамическую пагинацию страниц без перезагрузки страницы на php+js без использования node.js? Или задумываясь об отзывчивых динамических интерфейсах уже нет речи о php и теперь нужно переучиваться на node.js?&lt;br&gt;&lt;br&gt;Как-то у вас в голове всё перемешалось, node.js тут ни при чём. Ни при чём и Laravel.&lt;br&gt;&lt;br&gt;&amp;gt; загрузив это всё разом, всё будет ужасно тормозить&lt;br&gt;&lt;br&gt;Да, не нужно грузить миллиарды строк в браузер, любым языком, иначе гарантированно будет тормозить.&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (Oleg)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#15</link>
    <pubDate>Sun, 04 Dec 2022 17:26:29 GMT</pubDate>
    <description>Привет, если интересно, посмотри код coffee cms там как раз идеология минимализма хорошо реализована.&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (wwwebc)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#13</link>
    <pubDate>Sat, 03 Dec 2022 14:11:55 GMT</pubDate>
    <description>ну, или как вариант, можно на стороне сервера генерить весь html-код и отдавать ajax-ом.&lt;br&gt;&lt;br&gt;&#123;&lt;br&gt;    paginator: &quot;html-код пагинатора&quot;,&lt;br&gt;    data: &quot;html-код таблицы&quot;&lt;br&gt;&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (wwwebc)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#12</link>
    <pubDate>Sat, 03 Dec 2022 14:07:10 GMT</pubDate>
    <description>Не вижу проблемы, нужен только небольшой рефакторинг.&lt;br&gt;По-хорошему, ajax должен запрашивать только данные, а не готовый html.&lt;br&gt;Ответ в результате ajax-запроса будет выглядеть примерно так:&lt;br&gt;&lt;br&gt;&#123;&lt;br&gt;    num_pages: 5,    // подсчитанное кол-во страниц, с учетом фильтров и т.п.&lt;br&gt;    page_limit: 50,  // кол-во записей на страницу&lt;br&gt;    data: &#091;          // данные для текущей страницы&lt;br&gt;        &#123; id: 123, text: &quot;абырвалг...&quot;&#125;,&lt;br&gt;        &#123; id: 456, text: &quot;абырвалг...&quot;&#125;,&lt;br&gt;        &#123; id: 789, text: &quot;абырвалг...&quot;&#125;&lt;br&gt;    &#093;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;сам запрос будет что-то типа такого:&lt;br&gt;&lt;br&gt;$.ajax(&#123;&lt;br&gt;    url: &quot;/data.php&quot;,&lt;br&gt;    method: &quot;post&quot;,&lt;br&gt;    dataType: &quot;json&quot;, // важно указать, что данные возвращаются в формате json. как вариант, можно прописать нужный header в ответе от PHP&lt;br&gt;    data: &#123;&lt;br&gt;        param1: &quot;фильтр 1&quot;,&lt;br&gt;        param2: &quot;фильтр 2&quot;&lt;br&gt;    &#125;,&lt;br&gt;    success: function(response) &#123;&lt;br&gt;        // console.log(response); // для отладки&lt;br&gt;        if (response.data) &#123;&lt;br&gt;            // тут код для заполнения и отображения таблицы&lt;br&gt;        &#125;&lt;br&gt;        i</description>
</item>

<item>
    <title>Разумная пагинация (abi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#11</link>
    <pubDate>Thu, 03 Nov 2022 09:36:23 GMT</pubDate>
    <description>&amp;gt; А стрелки типа &quot;&amp;#124;&amp;lt;&quot; и &quot;&amp;gt;&amp;#124;&quot; Вы никогда не применяете для перехода &lt;br&gt;&amp;gt; на первую и последнюю страницу?&lt;br&gt;&lt;br&gt;Честно говоря, не знаю. Фронты так ловко написали фронт, что он на FF не открывается, а мне что-то другое ставить лень. Мы с ними через курлы общаемся.&lt;br&gt;&lt;br&gt;Подозреваю, что данных реализовать такое им хватает. (Переход на первую страницу очевиден, а последнюю они могут расчитать послав запрос на количество страниц). Это нормально - эти контролы ленивые, пока пользователь не нажмёт, запросов не будет.&lt;br&gt;&lt;br&gt;Для меня главное, чтобы компонент был нарисован  посылкой только одного запроса. Иначе ко мне девопсы придут с метриками.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (Филимон Мудрый)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#10</link>
    <pubDate>Thu, 03 Nov 2022 09:10:45 GMT</pubDate>
    <description>&amp;gt; Весь функционал у меня уже реализован, неужели мне ради пагинации придётся весь &lt;br&gt;&amp;gt; проект переписывать на Ларавел?&lt;br&gt;&lt;br&gt;Да&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (Дед Анон)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#9</link>
    <pubDate>Wed, 02 Nov 2022 21:15:36 GMT</pubDate>
    <description>&amp;gt; Просто используйте для ответа json, для начала можно просто отдавать 2 куска &lt;br&gt;&amp;gt; html(если я правильно понял ваш поток сознания).&lt;br&gt;&amp;gt;&amp;gt; Я довольно давно занимаюсь простенькой разработкой WEB приложений и сайтов на php &lt;br&gt;&amp;gt; Чисто из интереса, давно - это сколько?&lt;br&gt;&lt;br&gt;На счёт 2х кусков кода. Допустим php файл генерирует кусок таблицы, т.е. её внутреннюю часть между тегами tbody, её я и передаю через ajax в tbody id=&quot;t-data&quot;, а после этого в файле закрываются все теги и идёт div с пагинацией, в который нужно передать данные о том сколько строк данных в результате было получено сервером всего, чтоб разбить на страницы и создать структуру пагинации. Вот тут как раз и косяк, как получить через ajax 2 куска кода для разных id? Понятно что можно конечно делать как предложили выше, когда страниц очень много, то можно не подсчитывать общее количество, но тогда остаётся вопрос, что делать если по поисковому запросу найдено только несколько страниц подходящих по критериям? Получается всё равно нужно делать count запроса.&lt;br&gt;</description>
</item>

<item>
    <title>Разумная пагинация (Дед Анон)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/8314.html#8</link>
    <pubDate>Wed, 02 Nov 2022 15:44:22 GMT</pubDate>
    <description>&amp;gt; Просто используйте для ответа json, для начала можно просто отдавать 2 куска &lt;br&gt;&amp;gt; html(если я правильно понял ваш поток сознания).&lt;br&gt;&amp;gt;&amp;gt; Я довольно давно занимаюсь простенькой разработкой WEB приложений и сайтов на php &lt;br&gt;&amp;gt; Чисто из интереса, давно - это сколько?&lt;br&gt;&lt;br&gt;около 10 лет&lt;br&gt;</description>
</item>

</channel>
</rss>
