Интересно, но я так понимаю что кроме красоты GET запроса это ничего не дает?
И я на вскидку не нашел экранирование разделителей. Что будет если в имени элемента будет подчеркивание? :)
Не совсем понимаю нафига нужна реализвация на JS. Для формирования нужной строки запроса проще сразу нужным образом назвать имена формы. Тут скорее надо серверный класс для формирования обьекта(ов) из запроса и проименовывания полей формы. А для передачи данных в AJAX лучше JSON пока ничего нет имхо.
> Интересно, но я так понимаю что кроме красоты GET запроса это ничего не дает?
это как бы унифицированный формат, позволяющий использовать один и тот же парсер для получения данных из разных источников (псевдостатика, гет или пост форма (если не мультипартом посылается конечно), консоль )
> И я на вскидку не нашел экранирование разделителей. Что будет если в имени элемента будет подчеркивание? :)
обычное кодирование через проценты + дополнительно подчёркивание кодируется. смотри функции encode и decode
> Не совсем понимаю нафига нужна реализвация на JS.
чтобы было с чем сравнивать при написании библиотек на других языках. а вообще, js-библиотека полезна для всяких аяксовых сайтов, для хранения параметров в урле без перезагрузки страницы.
> А для передачи данных в AJAX лучше JSON пока ничего нет имхо.
json в урле смотрится слишком дибильно %-)
например тем, что пост запросы не кэшируются. или тем, что нельзя повторить запрос просто щёлкнув по ссылке. или тем, что нет достаточно простого способа подкорректировать значение руками.
А кто мешает ключ положить в etag или в get, если запрос не уникален для пользователя?
прочие данные зачем туда же пихать?
А насчет геморроя — существуют post формы и с ними тоже надо как-то работать. Так что приходиться один раз пройти через все это что бы потом не видеть разницы между get и post ajax запросами.
HTTP Information
Request Method:POST
Status Code:200 OK
Request Headers
Content-type:application/x-www-form-urlencoded
Origin:http://habrahabr.ru
Referer:http://habrahabr.ru/blogs/webstandards/92300/
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5
ЧПУ в явном виде он не дает, да и в современный фреймворках пишут свои правила разбора url, так что непонятно, в чем преимущество перед обычным запихиванием параметров в get.
он даёт человекопонятное представление иерархических структур в одномерном пространстве ;-)
ну это уже каждый решает сам какой парсер использовать. как правило во фреймворках идёт наколеночный разбор запроса с помощью регекспов, создавая кашевидный набор правил…
Зачем клиентам (не программистам) нужно понятное представление структур в урлах?
Навигация осуществляется посредством кликов по активным контролам сайта, а какой будет урл — никому не интересно.
в сети достаточно полно достаточно сообразительных непрограммистов, которые могут применять это с пользой для себя. делать сайты исключительно для хомячков — не интересно и не даёт морального удовлетворения. мне нравятся красивые и понятные урлы, которые я могу набрать по памяти, а не искать нужную ссылочку, пробираясь через груду активных контролов.
как я понял — ты против GET параметров, а не против вообще любых структур в урле
неужели ты предлагаешь удобный и понятный blogs/webstandards заменить на пресловутый хикус?
ещё раз — напиши последний урл, который без хикуса хуже, чем с хикусом.
>> Данный формат уже используется такими монстрами как Яндекс, Гугл
Где?
>> Исключение составляют PHP-сайты, для которых традиционно используется свой, не слишком наглядный формат
это не свой формат пхп, это стандарт кодирования данных, описанный RFC2396, если не ошибаюсь
вот только кем эти параметры будут сгенерированы? будучи отправлены формой с GET — браузер сам формирует правильную строку запроса.
если выключить на клиенте JS, то каким волшебным образом получится работать с хикусом?
на примере урла из яндекса — чтобы писать YaDate( request.from ) и YaDate( request.to ), а не YaDate( request.from_year, request.from_month, request.from_day ) и тп
> Данный формат уже используется такими монстрами как Яндекс (http://yandex.ru/yandsearch?date=within&text=hiqus&from_day=28&from_month=4&from_year=2009), Гугл (http://www.google.ru/search?as_q=hiqus&hl=ru&num=10&as_qdr=all) и многими другими, кому требуется передавать иерархические данные в строке запроса.
Ой ли! По мне так у них обычный способ кодирования данных, не надо придумывать.
Из недостатков: по моему, многовато разделителей, неуклюже получается. И командная строка непонятно зачем тут. Во-вторых, громоздкий яваскрипт (хотя, если не парсить этот hiqus на клиенте, он и не нужен), да еще небось и тормозной, там на каждый чих объекты заново создаются.
Hiqus — HIerarhical QUery String