Я создаю поисковую систему предприятия. У меня есть все мои записи для поиска на одной странице. Я хочу передать разбивку на страницы в результатах поиска с помощью Html и javascript. Я просмотрел много вопросов с разбивкой по страницам из stackoverflow, но я не понимаю никакой логики. Может ли кто-нибудь предложить мне какой-то метод или код для разбивки на страницы? Заранее спасибоРазбиение страницы в поисковой системе с помощью Javascript
ответ
Там 2 способа я обычно иду с нумерацией страниц:
- стороны сервера: Где вы отрабатываете количество записей, которые соответствовали по критериям поиска, и в зависимости от того, как многие записи на страницу отправляют соответствующие данные (например, 10 000 записей в базе данных, 15 на страницу, затем отправляют обратно 15 записей)
- Сторона клиента: Отправлять обратно все записи, соответствующие критериям поиска, и решать, что показывать и скрыть на стороне клиента
Поскольку вы не указали, с каким методом вы собираетесь работать, я собираюсь угадать, что это подход на стороне сервера, поскольку он является поисковой системой предприятия.
Я не собираюсь давать вам какой-либо код, потому что я даже не знаю, с какой структурой JS вы идете, и есть много, поэтому просто выберите один (пользовательский интерфейс AngularJS + Bootstrap + Bootstrap UI). Вместо этого я расскажу вам, как я обычно об этом говорю.
Когда пользователь что-то ищет, запросите базу данных и верните общее количество записей. Это означает, что здесь интересуется только тотальное. Предполагая, что вы используете MySQL, либо делайте SELECT COUNT(*) FROM foo WHERE bar= 'value';
ИЛИ используя SQL_CALC_FOUND_ROWS
.
Затем, исходя из того, сколько элементов вы хотите отобразить на странице, верните соответствующий номер, добавив limit
и offset
, например.
SELECT columns FROM table LIMIT 10 OFFSET 5
.
Когда возвращают данные, которые я обычно возвращаю что-то вроде этого
{
total: 234,
data: [
data1,
data2,
...
]
}
Использования total
я могу тренировки, сколько страниц для отображения, и я могу затем цикл через data
и показать его на этой странице.
Если пользователь нажимает, например, на стр. 5, то если элемент на странице равен 15, то я хочу видеть, что запись выполняется с 75 по 90 (при условии, что начиная с записи 1).
Вы должны предоставить более подробную информацию. Каковы ваши требования относительно разбивки на страницы? Должен ли он использовать некоторые технологии, например, jquery, угловые, реагировать? Или он должен быть создан с использованием обычного JavaScript и DOM? Как вы планируете его использовать? – sielakos
Зависит от того, что вы хотите сделать. Если вы говорите о разбиении на страницы данных, я бы рекомендовал вам посмотреть JQuery DataTables. Кроме этого, вам, вероятно, придется реализовать это как часть вашего приложения. – ManoDestra
привет .. Я создал поисковую систему с solr и i m, вызывая все записи из solr core с Solrj. Я хочу использовать Javascript. – Yashu