7

我读了很多关于客户端 JavaScript 应用程序和搜索引擎机器人爬取方法的东西。我发现了两种通用方法:

工作流程 1:

前提条件: 整个 Web 应用程序优雅地降级,并且可以在没有 JavaScript 的情况下使用。因此,搜索引擎机器人可以抓取。

  1. 用户来自谷歌搜索到特定主题
  2. 主题以纯 html 尽可能快地加载
  3. JS App Framework 在后台加载
  4. 一旦它准备好,JS App Framework 就会接管所有的动作和路由等等。

工作流程 2:

前提: 服务器后端是按照谷歌的ajax-crawling指南(https://developers.google.com/webmasters/ajax-crawling)设计的,返回escaped_fragment urls(eg www.example.com/ajax.html?_escaped_fragment_=key =value ) 纯 html。据我了解,可以使用类似http://phantomjs.org/的内容来确保没有前端代码重复。

  1. 谷歌在他们的结果中显示了 ajax URL
  2. 使用 ajax url #! 发出请求
  3. emberjs 应用程序已初始化,并根据 URL 加载所需的状态。

问题:

一个可抓取的 emberjs 应用程序堆栈应该是什么样子,为搜索引擎机器人和前端 js 框架提供服务器端渲染?emberjs 核心开发人员推荐什么来实现这一点?(例如 Node + Emberjs + phantomjs +- x OR Rails + Emberjs + y OR Playframework + Z)?

我知道可能有很多方法可以到达那里,但我觉得使用 stackoverflow 过滤掉常用方法会很好。

边注:

我已经看过一些想要创建开箱即用的完整堆栈的 JS 框架。在这里命名这些:

我特别询问了 emberjs,因为我喜欢他们的方法,而且我认为它背后的团队绝对有能力构建最好的框架之一。

4

1 回答 1

1

我还没有看到像这样为 emberjs 构建的任何预先存在的东西。然而,早期尝试将 ember 集成为节点的服务器端模块。

要检查的是derby.js,它实际上执行工作流 #1。您可能想查看他们的代码库,如果您能胜任这项任务,请将其调整为 ember。

于 2012-08-24T17:07:38.610 回答