我正在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();
});
目前我只有主页视图和投资组合视图。我担心的是,在访问我的网站地址时是否会加载整个应用程序?虽然它的一个小应用程序有一种方法可以将其分解成碎片,例如,组合视图和与之相关的所有数据(图像是我主要关注的)只会在导航到“投资组合”时下载?处理这个问题的最佳方法是什么,对于相对较小的应用程序(几页和一个博客)来说甚至是必要的?或者我实际上是错误的,骨干已经这样做了?
由于
答案 0 :(得分:2)
对于小型应用,甚至是大多数大型应用,完全没必要担心这个问题。只需将所有JS /模板发送到网络中(理想情况下缩小并连接在生产中)。单页应用程序的重点是,当导航发生时,您 无法点击网络来引入HTML / JS /其他资产。你绝对不应该试图通过网络延迟加载你的模板。
就图像而言,只有在您向DOM添加<img>
标记时,它们才会进入网络。