没有hashbang的Ajax可抓取应用程序

时间:2014-04-15 16:26:48

标签: javascript ajax node.js gwt

我正在构建一个基于Ajax的网站。当加载Dom时,向回答JSON文本的服务器发出异步http请求,然后通过javascript将来自JSON的数据放入DOM中。 谷歌抓取工具只是没有读取javscript之后加载的内容,所以我需要创建我的页面的HTML快照(在服务器上),并让我的服务器处理hashbang的请求。 但我怀疑是我在请求中没有使用hashbangs。 我唯一的ajax req就像是http://www.apiservice.com?get_data=true我怎样才能告诉google哪个请求可以获取整个页面的HTML快照以及我在哪里可以执行此操作(可能将请求URL放在站点地图中?)

非常感谢你

1 个答案:

答案 0 :(得分:0)

我了解您的页面分为两个步骤:第一个请求服务器获取核心html / javascript,第二个请求获取其他数据以显示在您的页面中。

如果是这样,那么第一个请求是带有hashbang的爬虫的请求。将它放在您的站点地图中是很有意义的。服务器应返回的静态html页面是由进程中的两个服务器调用产生的完整html。

如果您没有为抓取工具缓存静态html页面而是动态生成它(例如,使用htmlunit,请参阅this SO reference),那么在返回静态html快照之前将执行这两个步骤。因此,如果你缓存它,那么你应该确保你也这样做。