Методы разбиения на страницы для результатов поиска от больших форм - PullRequest
1 голос
/ 09 июля 2010

При создании форм поиска на веб-страницах я обычно использую метод GET. Это позволяет результатам быть адрес URI . Это также упрощает разбиение результатов на страницы стандартным способом.

Но как насчет формы с большим количеством опций и довольно длинными именами полей? Использование запроса GET означает, что URL-адрес страницы результатов может фактически превысить практический предел длины URL-адреса , равный 2 КБ .

Если я перехожу к использованию POST, я превышаю ограничение длины URL. Но тогда я теряю адресность URI. Кроме того, все ссылки на страницы должны быть переопределены как маленькие подчиненные формы со всеми данными параметров поиска, хранящимися в скрытых полях; чтобы заставить их работать как ссылки, потребуется что-то вроде обработчиков onclick, что делает их пригодными для использования только при включенном сценарии на стороне клиента.

Итак, каков совет для длинных форм поиска, которые:

  • поддерживать адресность URI
  • разрешить разумные нумерацию ссылок
  • не нарушайте практический предел длины URL-адреса в 2 КБ

Единственное, что я придумаю, это придерживаться GET, но уменьшая длину имен полей, чтобы мы с меньшей вероятностью нарушили ограничение URL.

Что ты думаешь? Большое спасибо заранее.

1 Ответ

0 голосов
/ 09 июля 2010

Что вам нужно сделать, это использовать метод post - вы не сможете обойти это, если ваш URL будет превышать лимит (хотя вы можете отложить неизбежное, сокращая имена и значения).

Возьмите сообщение и затем перенаправьте клиент на получение, чтобы сохранить адресуемость, вы можете либо сохранить на стороне сервера поиска ключ и получить его на получении (например, из памяти или базы данных), либо кодировать ключи водин ключ строки запроса или меньшее количество ключей, которые фиксируют поведение.Полученный ответ будет добавлен в закладки и т. Д.

Разбивка на страницы достаточно проста - просто посмотрите на наличие или отсутствие кнопок навигации в коллекции форм и ответьте соответственно.

...