如何在单页面应用程序上使用AMD来加载某些依赖项

时间:2012-11-03 19:26:16

标签: javascript backbone.js requirejs amd singlepage

据我所知,使用AMD管理加载的依赖项的一个好处是,但在使用require.js的单页面应用程序中,将加载所有依赖项。

例如,使用主干或类似的东西,假设我有以下文件

  

main.js需要router.js
  router.js需要view_a.js和view_b.js

router.js呈现视图

routes: {  
   "view_b":"b",   
   "view_a":"a"  
},  
a:function{  
  showView(new ViewA());  
},   
b:function{  
  showView(new ViewB());  
}

现在让我说我转到example.com/#view_b,它只需要view_b.js中的代码,但不使用view_a.js中的任何内容。无论如何只使用require.js或类似的东西加载view_b.js加载或优先处理?

1 个答案:

答案 0 :(得分:0)

你不能因为require.js在执行之前需要加载文件的所有依赖项。

我看到了两个问题的解决方案:

  • 创建两个不同的Backbone.Router,就像你只需要每个路由器所需的模块一样(恕我直言,这不是最好的解决方案)

  • 使用require.js optimizer,这会将您的所有Javascript文件合并为一个。当然,您只能将它用于生产,而不是用于开发。