58

是否有关于何时使用哈希参数、url 参数和路径的约定或最佳实践建议?

例如:

  • 哈希参数:stackoverflow.com/questions#q=13630937&t=hash-params-vs-url-params
  • 网址参数:stackoverflow.com/questions?q=13630937&t=hash-params-vs-url-params
  • 网址路径:stackoverflow.com/questions/13630937/hash-params-vs-url-params

是否有安全性、搜索引擎优化、可用性方面的优势或劣势,或者是风格问题?

4

1 回答 1

53

哈希参数对于单页 javascript 应用程序很有用,它允许 javascript 向用户呈现应用程序状态的可共享 url。这是首选,因为如果您有一个单页 javascript 应用程序并且用户通过 ajax 导航和加载更多内容并共享 url,而无需修改散列或推送状态,则接收内容的人将获得主页或开始状态。哈希参数可以很容易地修改并通过 javascript 读取,而无需重新加载页面。

散列参数通常只在客户端使用,散列参数不会传递给服务器......所以它们只对客户端的参数化有用。

/users#!/13

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

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

网址参数和网址路径在某种程度上可以互换。人们通常使用 url 路径来描述 restful 资源,例如

/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 url 或“URL 参数”更容易被爬虫索引,并且往往排名更高。

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

/users?sort=user_name&order=asc
于 2013-03-14T03:18:12.430 回答