2009-08-28 4 views
0

Мы строим большой интерфейс поиска с близкими к 70 объектам. Большинство из этих свойств являются логическими (имеют только 0 или 1), около 12 - с значениями int, а некоторые - строками.Форма поиска Структура URL

goal: http://www.example.com/q/test_search/fdgREGd3vfS323 
want to avoid: http://www.example.com/q/test_search/?val_12=1000&val_120=0&val_4=XY.... 

Наша цель состоит в том, чтобы иметь короткий URL, который будет содержать все свойства поиска, что позволяет хранить/отправить точные данные поиска, просто помня URL.

Я знаю, что это может быть сделано со многими параметрами в строке url, но мой босс настойчив.

Мы выяснили, как представляют собой логические значения:

значение Карты в двоичном представление (00010101011) с каждой позицией, представляющей одну переменными. Мы передаем эту строку, закодированную в более короткую копию (AB), например. Hex.

Но когда дело доходит до свойств, которые содержат значения, мы не решили, как обрабатывать. Есть идеи?

+0

Люди не собираются запоминать держателей мест в произвольной двоичной строке. Подумайте, просто имея значения по умолчанию для неуказанных параметров, используйте схему кодирования параметров, которая уже используется везде в Интернете, и не изобретайте колесо. –

+0

Свойства, содержащие значения ... Я предполагаю, что вы имеете в виду свойства, содержащие строки? – ryeguy

+0

Мы предоставим окно выбора цвета свойства, пользователь выберет значение, например. 20 (идентификатор цвета). Наше намерение заключается не в том, чтобы пользователи могли модифицировать URL-адрес, но чтобы быть достойным и предпочтительно кодироваться – gregor

ответ

2

Вы можете упростить его еще больше. Если база данных не является проблемой, вы можете хранить поиски людей в Databse, и выдают URLs некоторого вида, как это:

user_searches: 
search_id | prop1 | prop2 | prop3 | .... | propN 

и дать пользователям URL-адрес, как:

http://example.com/search/(search_id) 

Я предпочитаю использовать этот способ, потому что невидимый из конечной точки пользователя, что происходит, он держит короткий URL, и вы можете легко отслеживать, что люди ищут, если вы хотите оптимизировать свой сайт для удобства использования :).

[edit] Кроме того, вы можете использовать хэш для (search_id), поэтому поиск не будет так легко угадать другими пользователями.

+0

Отличная идея, придется подумать об этом подумать – gregor

0

Если ваши значения являются конечными и статичными, присвойте им номер.

Если комбинация всех возможных параметров поиска является конечной, есть также возможность хэшировать все это и использовать этот хеш в качестве вашего спокойного параметра URL.

+0

Мысль об этом, но мы разделили эту опцию из-за длины URL-адреса – gregor

Смежные вопросы