我们应该site.com/#!/blog
还是site.com/#!blog
?
我知道没有实际的区别,但是作为一个web开发者社区,仍然应该有一个传统的标准,以便用户可以轻松记住网址。如果没有已经建立的标准,理想情况下有人会发布一个有利于一个的答案,而有人会发布另一个有利于另一个的答案,而且一个人将得到比另一个更多的选票......
我个人更喜欢:site.com/#!blog
因为它更短。但是我看到很多其他网站使用其他版本。
顺便说一句,如果你的第一直觉是指示我们不使用hashbangs,那么这个问题不适合你,请不要管它们。
答案 0 :(得分:10)
您忘记了site.com#!blog
的第三个选项。
如果你想获得所有语义,问题就变成“在网址中代表什么'/'?”
[site.com#!blog]
导航文件系统时,文件夹以斜杠分隔。这也是网络上的自然行为,但路由改变了这一点。
[site.com/#!blog]
outing介绍了内容的层次结构。而不是问号和&符号,查询变量用斜杠分隔,根据开发人员认为重要的东西创建深层链接结构。
[site.com/#!/blog]
Stack Overflow就是我所说的“上下文分离”的一个很好的例子。此问题的网址为[http://stackoverflow.com/questions/5414972/hashbang-slash-or-no-slash/
]。问题ID和问题标题之间的斜杠不存在,因为名为5414972
的文件夹中有一个文件。 ID 5414972
只有一个问题,因此层次结构也没有必要。使用斜杠来分隔ID和名称是有意识的选择,而不是使用任何其他分隔符,例如连字符,下划线,甚至根本没有分隔符。不是斜杠的分隔符可能会使两个变量类似于一个变量。通过在哈希爆炸的任一侧放置斜杠,网址变为:
url prefix > ajax crawling notation > the specific page
而不是
url prefix > ajax crawling notation and the specific page
。
根据您的回答是肯定的(是的,这是主观的),您将获得答案。我认为,当我们仍然无法决定如何格式化日期时,尝试让整个世界就此达成一致意见有点愚蠢。
关于对“哈希爆炸”的怨恨的最后一点评论,我想你正在想象这个。当他们的声音与“闪光弹”相似时,谁不喜欢“哈希刘海”?
答案 1 :(得分:5)
一个斜线就像一只蚂蚁:当你看到它时,你希望看到另一只。
site.com/#!/blog
如果我们将来有site.com/#!/blog/latest
,site.com/#!/blog/archive/october
或其类似内容,那就是正确的。
只是我的€0.014185。
答案 2 :(得分:4)
这取决于你在做什么。如果你基本上只是试图aj化你的网站结构,那么IMO包含那个root /,/ /!/ blog是有意义的。弹出窗口,跳过标签等可以使用其他结构。
我不相信应该有一个传统的标准。有一个原因存在mod_rewrite这样的工具:存在无限问题的无限解决方案,并且试图将像URL一样复杂的东西标准化是不可能的。
此外,对于任何想知道hashbangs的合法用途的人:http://code.google.com/web/ajaxcrawling/
答案 3 :(得分:4)
使用斜杠的优点是更容易解析。在丢失(""
)或空哈希("#"
)的情况下,无需担心特定浏览器是返回""
还是"#"
,您只需采取第一个斜杠作为起点:你不必担心它之前的东西。
var tokens = window.location.hash.split("/").shift();
tokens
成为[#]的标记数组!已经不在了。在哈希中使用斜线分隔标记的层次结构时特别方便。
但是,当然,你仍然应该检查剥离的令牌,以确保它是一个有效的hashbang。