Hash params vs url params,何时使用哪个?

时间:2013-03-06 03:23:45

标签: url

是否有关于何时使用hash params,url params和vs path的约定或最佳实践建议?

例如:

  • hash params:stackoverflow.com/questions#q=13630937&t=hash-params-vs-url-params
  • url params:stackoverflow.com/questions?q=13630937&t=hash-params-vs-url-params
  • url路径:stackoverflow.com/questions/13630937/hash-params-vs-url-params

是否存在安全性,搜索引擎优化,可用性的好处或缺点,或者是风格问题?

1 个答案:

答案 0 :(得分:33)

哈希参数对单页面的javascript应用程序非常有用,它允许javascript向用户显示应用程序状态的可共享网址。这是首选,因为如果你有一个单页的javascript应用程序,用户通过ajax导航和加载更多内容并共享网址,没有哈希或推送状态修改,接收内容的人将获得主页或开始状态。 Hash params可以轻松修改并通过javascript读取而无需重新加载页面。

哈希参数通常仅在客户端使用,哈希参数不会传递给服务器...因此它们仅对客户端的参数化有用。

/users#!/13

将加载用户索引页面,然后javascript可以读取哈希

window.location.hash并通过某种客户端路由器传递它并发出适当的ajax请求,并可能加载用户show模板并将其推送到dom。

Url params和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的角度提出了一个很好的观点。被抓取的URL或“URL Params”更容易被抓取者编入索引,并且往往排名更高。

对于不适合资源丰富的路线的参数,我们将它们作为参数发送

/users?sort=user_name&order=asc