使用带有快速和骨干的把手,同时保持SEO

时间:2014-10-11 21:28:21

标签: javascript backbone.js handlebars.js

我正在努力弄清楚如何在保持SEO的同时使用把手(在服务器和客户端上)实现Backbone。

考虑到我在网址中有一个RESTful API:

/api/submissions/:type?/:category?:offset?:limit?

当有人点击mydomain.com/时,它会在此处初始化我的主干:

  var site = window.site || {};

  site.FeedSubmission = Backbone.Model.extend({

  });

  site.FeedSubmissions = Backbone.Collection.extend({
    model: site.FeedSubmission,
    url: '/api/submissions/?type=tip&offset=0,30'
  });

  site.FeedSubmissionView = Backbone.View.extend({
    initialize: function() {
      console.log(this.collection);
    }
  });

  var submissions = new site.FeedSubmissions();

  submissions.fetch({
    success: function(coll, res, options) {
      var feedSubmissionView = new site.FeedSubmissionView({
        collection: submissions
      });
      feedSubmissionView.render();
    },

    error: function(coll, res, options) {
      console.log('woops')
    }
  });

  var feedSubmissionView = new site.FeedSubmissionView({
    collection: submissions
  });

这适用于我的集合实例化视图,但如果搜索引擎尝试索引该网站,它显然会造成麻烦,因为视图的渲染是用JS完成的。

基本上我想要两全其美:我想使用Backbone,但也可以获得为搜索引擎提供html的好处。我要启动一个phantomjs实例或一些无头浏览器只是为了向搜索引擎提供我的内容。主要是因为它太多的开销和最好的片状。

我需要做什么?将数据引导到某些json并将其转储到页面中并覆盖Backbone的fetchsync以填充模型/集合?

0 个答案:

没有答案