我读了很多有关客户端JavaScript应用程序和搜索引擎机器人爬网方​​法的内容。
我发现了两种通用方法:

工作流程1:

前提条件:
整个Web应用程序会正常降级,并且无需JavaScript就可以使用。因此,对于搜索引擎机器人来说,这是可见的。

  • 用户来自Google搜索特定主题
  • 主题以纯HTML格式尽快加载
  • JS App Framework会在后台加载
  • 准备就绪后,JS App Framework将接管所有操作和路由等。

  • 工作流程2:

    前提条件:
    服务器后端是根据Google的Ajax爬行指南(https://developers.google.com/webmasters/ajax-crawling)设计的,并返回到escaped_fragment网址(例如www.example.com/ajax.html?_escaped_fragment_=key=value)纯html。据我了解,可以使用http://phantomjs.org/之类的东西来确保没有前端代码重复。
  • Google在其结果中显示ajax URL
  • 使用ajax网址#发出请求!
  • emberjs应用程序已初始化,并根据URL加载所需的状态。

  • 问题:

    可爬网的emberjs应用程序堆栈应如何为搜索引擎机器人和前端js框架优势提供服务器端渲染?
    emberjs核心开发人员建议如何实现此目标?
    (例如Node + Emberjs + phantomjs +-x OR Rails + Emberjs + y OR Playframework + Z)?

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

    边注:

    我已经看过一些JS框架,它们想要开箱即用地创建一个完整的堆栈。在这里命名:
  • http://derbyjs.com/(不错的方法,但仍然是alpha)
  • http://batmanjs.org/(不清楚如何准备生产(特别是后端))
  • http://www.firebase.com/(在某种程度上有所不同,但如果他们获得正确的安全性也很有趣)
  • http://meteor.com/(也是预览状态)
  • http://developer.yahoo.com/cocktails/mojito/

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

    最佳答案

    我还没有看到像这样针对emberjs构建的东西。但是,有早期尝试将ember集成为 Node 的服务器端模块。

    需要检查的是derby.js,它实际上执行工作流程#1。您可能想看一下他们的代码库,如果您能胜任该任务,请对其进行调整以适合 Ember 。

    关于javascript - 用于搜索引擎可爬网应用程序的EmberJS技术堆栈,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12070060/

    10-11 23:55