2016-06-12 3 views
0

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

Вот URL:

http://www.holidaysplease.co.uk/holiday-finder/#{"d":"2016-06-1","a":[],"t":20,"r":200,"f":13,"tr":180,"s":[5,4,3],"ac":[],"c":[],"sh":[],"dh":[],"du":null,"b":"500-4407"} 

Кто-нибудь знает, что это понятие называется? Я помню, как однажды это видел в веб-приложении на базе Java, но кто-то может заверить меня, как это достигается и на каком языке?

+0

Это в хэш-части, поэтому он имеет дело с кодом JavaScript ... – n00dl3

ответ

0

Похоже, что это идентификатор фрагмента.

Wikipedia says: Идентификатор фрагмента, введенный символом-хэшем #, является необязательной последней частью URL-адреса документа. Он обычно используется для идентификации части этого документа. Общий синтаксис указан в RFC 3986. Сегмент метки хэш-метки в URI не относится к идентификатору фрагмента.

RFC 3986 определен here.

Раньше я никогда не видел этого раньше. Верхняя информация - это то, что немногие исследования вернули мне. Надеюсь, это не совсем так.

0

Текст после # в URL-адресе является идентификатором фрагмента, который обычно используется для ссылки на раздел в документе, но может содержать любые данные, которые не будут отправляться в запросе на сервер, но могут читается клиентом с использованием JavaScript.

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

Вот JSON из вашего примера в более удобном для восприятия виде:

{ 
    "d": "2016-06-1", 
    "a": [], 
    "t": 20, 
    "r": 200, 
    "f": 13, 
    "tr": 180, 
    "s": [ 
     5, 
     4, 
     3 
    ], 
    "ac": [], 
    "c": [], 
    "sh": [], 
    "dh": [], 
    "du": null, 
    "b": "500-4407" 
} 
0

Концепция это данные, введенные пользователем, посылают на сервер в качестве JSON structure в URL. Сервер считывает строку как JSON и обрабатывает запрос.

Этот процесс очень эффективен в WebForm, и это можно сделать, используя метод encodeURIComponent.

Я думаю, вы заметили, что при изменении даты он просто обновляет JSON в URL-адресе. Таким образом, они отправляют данные, заполненные на сервер, в формате JSON.

В вашей URL,

d - days and year 
du - duration 
a - holiday type 
t - temperature 
r - rainfall 
f- fight time 
tr - travel 
s - star for the hotels 
b - budgets 

Надежда эта информация поможет вам :)

+0

Итак, как именно данные JSON отправляются на сервер? – user3574492

+0

Они будут отслеживать URL-адрес, когда пользователь заполняет форму и когда пользователь заполняет все поля, сервер будет проверять JSON, и они будут продолжать работу с данными JSON. Если вы заметили на сайте, когда вы заполнили все поля, данные (т. Е. Отели) будут перечислены ниже в форме. Итак, вот как это работает :) – Thinker

+0

Идентификаторы фрагментов не отправляются на сервер. Они обрабатываются клиентом. –

0

части после # называется fragment identifier. Клиентский код javascript может получить доступ к содержимому фрагмента, используя location.hash. В этом случае фрагмент содержит json-данные. Браузер, как правило, даже не отправляет фрагмент на веб-сервер, поэтому он используется только на стороне клиента.

Наиболее часто используемым идентификатором фрагмента является ссылка на определенный элемент на веб-странице с использованием атрибута id.Это используется для подразделов статей Википедии:

https://en.wikipedia.org/wiki/Fragment_identifier#Basics 

Когда фрагмент содержит JSON, вы можете просмотреть данные, открыв консоль JavaScript браузера и вызова этого кода.

JSON.parse(location.hash.substr(1)) 

Такого рода схемы могут использоваться приложениями отдельных страниц для сохранения состояния в URL, так что вы можете пометить его и поделиться URL.