REST/Ajax深层链接兼容性 - 锚标记与查询字符串

joe*_*rmd 5 html ajax http hyperlink

所以我正在开发一个网络应用程序,我想过滤搜索结果.

一个很好的restful实现可能如下所示:

1. mysite.com/clothes/men/hats+scarfs
Run Code Online (Sandbox Code Playgroud)

但是让我们说我们想要过滤,就像酷孩子一样,我们希望保留深层链接,我们可能会使用锚标记并用Javascript解析它以显示正确的列表:

2. mysite.com/clothes#/men/hats+scarfs
Run Code Online (Sandbox Code Playgroud)

但是,如果有人点击启用了JS的第一个链接,然后更改过滤器,我们可能会得到:

3. mysite.com/clothes/men/hats+scarfs#/women/shoes
Run Code Online (Sandbox Code Playgroud)

乌尔克.

同样,如果某人没有启用JS,并点击链接2 - JS将不会解析选项,并且不会显示正确的列表.

Ajax深层链接和非Ajax链接是否不兼容?看起来似乎是这样,因为服务器无法解析URL的#部分,因为它不会发送到服务器.

art*_*ung 1

Google在这个问题上抛出了一个棘手的问题:一项使 Ajax 可抓取的提案。Google 提供了有关 url 结构的建议,这些建议可能会给您提供有关自己的应用程序的想法。

总结如下:

总之,从有状态的 URL(例如 )开始 http://example.com/dictionary.html#AJAX ,它可以供爬网程序和用户使用,因为 http://example.com/dictionary.html#!AJAX 可以对这些 URL 进行爬网 http://example.com/dictionary.html?_escaped_fragment_=AJAX ,然后将其显示给用户并通过以下方式进行访问: http://example.com/dictionary.html#!AJAX

在此处查看Google 的演示文稿(注:Google 文档演示文稿)

一般来说,我认为完全关闭 JavaScript 和 CSS 并浏览您的网站和 Web 应用程序并查看最终暴露的内容是有用的。一旦您了解了哪些内容是可见的,您就会了解大多数搜索引擎看到的内容,进而向您展示哪些内容被蜘蛛抓取,哪些内容未被蜘蛛抓取。