Backbone Js在部分中加载应用程序

时间:2013-12-08 02:50:12

标签: javascript jquery backbone.js

我正在backbone.js

中构建一个小应用程序

它包括路由器,许多基本视图和模型等,以及博客。

关于博客,帖子的内容将保存在数据库中,但对于其他页面,内容包含在下划线模板中。这就是我的路由器的样子:

$(function() {
var Router = Backbone.Router.extend({
routes: {
  '': 'home',
  'home' : 'home',
  'portfolio' : 'portfolio'
}
});

var homeView = new HomeView({ el: $("#container") });
var portfolioView = new PortfolioView({ el: $("#container") });

var router = new Router();
router.on('route:home', function () {
    homeView.render();
});

router.on('route:portfolio', function () {
    portfolioView.render();
});

Backbone.history.start();
});

目前我只有主页视图和投资组合视图。我担心的是,在访问我的网站地址时是否会加载整个应用程序?虽然它的一个小应用程序有一种方法可以将其分解成碎片,例如,组合视图和与之相关的所有数据(图像是我主要关注的)只会在导航到“投资组合”时下载?处理这个问题的最佳方法是什么,对于相对较小的应用程序(几页和一个博客)来说甚至是必要的?或者我实际上是错误的,骨干已经这样做了?

由于

1 个答案:

答案 0 :(得分:2)

对于小型应用,甚至是大多数大型应用,完全没必要担心这个问题。只需将所有JS /模板发送到网络中(理想情况下缩小并连接在生产中)。单页应用程序的重点是,当导航发生时,您 无法点击网络来引入HTML / JS /其他资产。你绝对不应该试图通过网络延迟加载你的模板。

就图像而言,只有在您向DOM添加<img>标记时,它们才会进入网络。