是否有关于何时使用hash params,url params和vs path的约定或最佳实践建议?
例如:
是否存在安全性,搜索引擎优化,可用性的好处或缺点,或者是风格问题?
答案 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