2014-01-10 30 views
0

是否有可能在url中没有散列符号(#)的情况下执行Ajax深层链接。知道我的网址并不指向服务器上的任何控制器/操作。没有散列符号的Ajax深层链接

例如Stackoverflow或Soundcloud如何管理网址?

任何帮助,将不胜感激

+0

Downvoters请留下评论,以便我可以更新我的问题 – Merlin

+0

我不能为downvoter(本文写作之一)发言,但有一人投票结束为“不清楚你要问什么”,还有两个人人们投票决定“太宽泛”。不是我的专业领域,所以我没有意见,因为您要求反馈意见,所以我只是将这些信息作为参考提供。 –

回答

3

你可以使用一个查询字符串,但#是更好,因为它不会给不同的资源服务器上的外观。

Stackoverflow不使用Ajax(afaik)加载页面(如果他们这样做,他们会使用下面的技术)。我不知道Soundcloud做了什么,因为我不使用它们。

Twitter和Github使用history apipushState和朋友),但填充初始页面加载服务器端(即它们不加载默认页面,然后使用JavaScript覆盖它)。

以这种方式做服务器端是首选的方法。它更快地加载请求的内容(并且没有主页问题的闪光),如果JavaScript fails继续工作,并且搜索引擎友好。

+0

我试图使用推送状态的历史api,它正在为浏览器后退按钮或书签工作。但是当我刷新页面时,我得到一个404错误。我如何处理刷新按钮..? – Merlin

+0

正如我所说 - 你必须填充页面服务器端。 – Quentin

+0

好吧林不知道我低调和100%你的回应,但我明白我必须提供页面服务器端。谢谢 – Merlin