【发布时间】:2014-08-19 15:37:22
【问题描述】:
所以我们只是在加速一个新项目,以我们迄今为止最广泛的方式来实现 AngularJS。出现的问题之一是 GSA 抓取网站的能力,因为我们广泛使用它。
现在我们的实现如下:
第 1 步:JSP 从服务器返回页面内容以及使用 JSON 对象所需的任何 AJAX 提要的 URL 引用。
feeds: {
"global": "href",
"page": "href"
}
第 2 步:Angular 然后对这些提要进行 AJAX 调用,以获取包含页面数据的 JSON 对象。
第 3 步:如果 AJAX 调用成功,则将数据附加到与提要的键同名的根范围。
$rootScope.global = result;
第 4 步:然后使用附加到根范围的对象来构建站点。这包括网站上的所有动态数据,其中包括导航(页眉和页脚)、页面内容等(页面上的几乎所有内容)。
主要担心的是,由于页面上的所有 DOM 都是由 AngularJS 创建的,并且所有数据都是通过 AJAX 加载的,因此 GSA 将无法正确抓取该网站。
到目前为止,我们提出的唯一解决方案是检测页面请求是 GSA 请求还是用户请求,如果是 GSA 请求,则直接转储页面上的内容而不设置样式,否则按照上述流程.我知道这被认为是伪装,但我们在内部使用自己的 GSA,这不是出于 SEO 目的。
有没有更好的方法来让 GSA 与 AJAX 繁重的应用程序一起工作,而不必做两次这样的工作?
【问题讨论】:
标签: ajax angularjs google-search-appliance