Параметры hash params vs url params, когда использовать? - программирование
Подтвердить что ты не робот

Параметры hash params vs url params, когда использовать?

Есть ли соглашение или рекомендация по использованию, когда использовать хэш-параметры, параметры url, vs paths?

Например:

  • параметры hash: stackoverflow.com/questions#q=13630937&t=hash-params-vs-url-params
  • Параметры URL: stackoverflow.com/questions?q=13630937&t=hash-params-vs-url-params
  • URL-адрес: stackoverflow.com/info/13630937/hash-params-vs-url-params

Есть ли безопасность, seo, преимущества использования или недостатки каждого из них или проблема стиля?

4b9b3361

Ответ 1

Параметры hash полезны для одностраничных javascript-приложений, поэтому он позволяет javascript предоставлять пользователю общий доступ к состоянию приложения. Это предпочтительнее, потому что если у вас есть одностраничное приложение javascript, и пользователи перемещаются и загружают больше контента через ajax и обмениваются URL-адресом, без изменения хэша или нажатия кнопки человек, получающий контент, получит начальную страницу или начальное состояние. Параметры хэша могут быть легко изменены и прочитаны javascript без перезагрузки страницы.

Параметры хэша обычно используются только на стороне клиента, параметры хеша не передаются на сервер... поэтому они полезны только для параметризации для клиента.

/users#!/13

загрузит пользовательскую индексную страницу, а затем javascript сможет прочитать хэш

window.location.hash и передать его через какой-то клиентский маршрутизатор и сделать соответствующий запрос ajax и, возможно, загрузить шаблон show user и нажать его в dom.

Параметр Url и URL-адрес несколько взаимозаменяемы. Обычно люди используют URL-адрес для описания спокойных ресурсов, таких как

/users/[:id] => /users/13 => /users?id=13
/users/:id/posts => /users/13/posts
/users/:user_id/posts/:id => /users/13/posts/22
etc......

@Walter Tross, сделал хороший момент с точки зрения SEO. Slugged urls или "URL Params" больше индексируются сканерами и имеют тенденцию к рангу выше.

Для параметров, которые не подходят в находчивом маршруте, мы отправляем их как params

/users?sort=user_name&order=asc