了解可爬网Ajax的Google规范

时间:2011-11-04 17:11:50

标签: c# asp.net

我使用dotnet c#,jQuery加上webservices进行ajax调用。我的分页就像twitter和facebook的分页一样。在onload事件中,ajax调用填充10行的内容区域,单击或滚动页面向下事件调用相同的ajax调用,带有页面参数,带来更多10行,依此类推。我没有非javascript用户的规范分页。我阅读了有关可抓取ajax的Google规范,但我不确定如何将我的模型转换为google新模型。

首先,我使用jQuery ajax发布,使用json格式。因此可以创建一个读取http://www.domain.com/search.aspx?_escaped_fragment_=somevalue之类的URL的aspx页面,并使用_escaped_fragment_值返回内容。但是,不知何故,我必须将此页面链接传播到Google抓取工具http://www.domain.com/search.aspx#!somevalue。这可以吗?

确定!但是,当Google Crawler访问我的分页时,抓取工具将看不到http://www.domain.com/search.aspx#!1的任何链接,除非我将其指向站点地图,这对我来说毫无意义。我陷入了混乱。有人可以给我一个提示吗?

2 个答案:

答案 0 :(得分:1)

我对图表的理解:http://code.google.com/web/ajaxcrawling/docs/getting-started.html

是谷歌会将您的现有“漂亮”网址(例如http://www.domain.com/search.aspx?page=2)更改为丑陋版本(包括#!)。它通过常规机制实现这一点 - 在您的页面上找到某个链接(例如,href到“第2页”)。

然后它提交它,您的网站必须了解它,并渲染快照。

因此,除非您没有第2页链接(链接到第3页等),否则不需要站点地图。

答案 1 :(得分:0)

让我们试试:

考虑指向页面的链接,例如www.domain.com/search.aspx?query=google#1

页面search.aspx必须具有读取哈希值的函数,并获取相对于页面1的内容。此内容的一部分为www.domain.com/search.aspx?query=google#2。该函数执行相同的操作,但现在它获取相对于第2页的内容。依此类推。

现在我必须将#1和#2换成#!1和#!2。我的逻辑是一样的,但谷歌抓取工具会调用www.domain.com/search.aspx?query=google&_escaped_fragment_=1,我将不得不创建一个网址路由,将此网址重定向到某个页面,该页面将返回结果的html快照。

是吗?