У меня есть сетка с несколькими тысячами строк, которые можно отфильтровать и отсортировать. В каждой строке вы можете нажать кнопку «Подробности», которая откроет вам новую страницу с подробной информацией о странице. Поскольку это кнопка, вы не можете щелкнуть средней кнопкой мыши или щелкнуть правой кнопкой мыши и открыть в новой вкладке. Кроме того, при нажатии назад вы теряете фильтры и результаты поиска.
Чтобы решить эту проблему, я подумал о следующем: переключайте кнопки на ссылки, а при фильтрации и поиске используйте get вместо отправки запросов. Таким образом, вы можете переключаться на новые страницы с помощью щелчка правой или средней кнопки мыши, и если вы все же переходите по ссылке в обычном режиме, обратная связь будет работать правильно.
Однако это изменение не было сделано. Нас попросили добавить набор кнопок «следующий результат / предыдущий результат» на странице сведений, который позволит вам перемещаться. Хотя это и не элегантное решение, оно, по крайней мере, сработает.
Я предложил добавить параметры строки запроса на страницу сведений, которые бы повторно генерировали поисковый запрос на основе фильтра и позволяли получать следующие и предыдущие результаты в коде.
Член команды не согласился с этим решением. Он считает, что повторные запросы к базе данных являются пустой тратой серверных ресурсов. Вместо этого было предложено решение добавить переменную сеанса, включающую список результатов. Затем вы можете использовать это для навигации.
Я не согласился с этим, потому что вы не можете открыть несколько вкладок, не нарушая навигацию, и новые результаты не добавляются в список в режиме реального времени. Кроме того, если вы беспокоитесь об оптимизации, сеанс будет последним, что нужно использовать, поскольку он потребляет память и предотвращает репликацию сервера ... если вы не сохраните результаты обратно в базе данных.
Какое лучшее решение?