纯粹的JavaScript解决scheme的谷歌Ajax可伸缩规范

我有一个基于JavaScript的项目(例如node.js,backbone.js等)。 我正在使用像/#!/ about这样的hashbangurl,并且已经阅读了google的ajax可search规范。 我已经做了一些与僵尸无头UItesting,可以很容易想到如何通过设置一个轻微的延迟和静态内容返回到谷歌机器人。 但是我并不想从头开始实现,希望有一个预先存在的库适合我的堆栈。 知道吗?

编辑:在写作时,我不认为这存在。 然而,在服务器和客户端上使用主干(或类似的)进行渲染是合理的方法(即使不是直接的答案)。 所以我打算把这个标记为答案,尽pipe未来可能会有更好的解决scheme。

在服务器和浏览器上有一个使用node.js和Backbone.js的实现https://github.com/Morriz/backbone-everywhere

只是为了join,我也遇到了这个问题(我有非常ajax / js重型网站),我发现这可能是有趣的:

crawlme

我还没有尝试,但它听起来像它会使整个过程小菜一碟,如果广告作品! 这是一个连接/expression中间件,只是简单地在页面调用之前插入,显然是照顾其余的。

编辑:

尝试爬行,我有一些成功,但它使用的后端无头浏览器(zombie.js)与我的一些JavaScript内容失败,可能是因为它通过甩掉DOM,因此将不完美。

Sooo,而是我得到了一个完整的基于Webkit的无头浏览器,phantomjs和一组节点链接,如下所示:

npm install phantomjs node-phantom 

然后我创build了自己的脚本,类似于crawlme,但使用phantomjs而不是zombie.js。 这种方法似乎是完美的,并将完美地渲染我的每个基于Ajax的页面。 我写的脚本可以在这里find。 使用它,简单地说:

 var googlebot = require("./path-to-file"); 

然后在任何其他调用您的应用程序之前(这是使用快递,但应该只是连接工作:

 app.use(googlebot()); 

源是真正简单减去几个正则expression式,所以有一个甘德:)

结果:可以通过googlebot来抓取AJAX沉重的node.js / connect / express网站。

可爬行的nodejs模块似乎符合这个目的: https ://npmjs.org/package/crawlable和这样的SPA的例子,可以在节点https://github.com/trupin/crawlable-todos中呈现服务器端