如何将我的大型Backbone.js项目拆分为多个部分?

时间:2011-04-19 01:05:20

标签: backbone.js

我有1个控制器,有数百条路线。是否有一个系统将应用分成几个部分,只加载该部分所需的javascript文件?

否则,用户可能必须从第一次加载下载整个应用程序的所有javascript。

似乎某些控制器命中,它应该检测是否需要新的javascript下载。

3 个答案:

答案 0 :(得分:5)

您可以查看RequireJS

请记住,动态加载模块也有其缺点:

  • 应用程序的响应速度较慢,每次加载新模块时,用户都必须等待。
  • 代码可能会变得更复杂,因为只有在加载某些内容后才能执行某些部分。
  • 特定应用中的一些更复杂的问题。

理想情况下,您希望保留模块/多文件方法,但是为了部署,将所有内容合并到一个文件中。即使它是一个巨大的文件,它仍然会比50个文件加载更快,并且对于用户来说比每次导航到应用程序的不同部分时都必须看到加载屏幕更令人愉快。

我认为RequireJS提供了两种功能,您可以在开发时随时随地加载内容,但是当您准备好部署时,您仍然可以将所有内容打包在一个文件中。

答案 1 :(得分:2)

我建议使用资产包装程序,例如Jammit,这样可以根据需要将多个脚本缩小为一个压缩文件。

通过这种方式,您可以构建脚本,但是对您来说更有意义,将它们分成您想要的任意数量的文件,资产句柄将负责压缩和组合它们。 如果某些脚本太大而无法在任何地方加载,您可以随时使用 content_for

将更大的脚本加载到需要这些脚本的视图中

例如:

<% content_for :head do %>
  <%= include_javascripts :my_big_files %>   
<% end %>

答案 2 :(得分:0)

另一种选择可能是Stitch。它是节点生态系统的一部分,可以动态编译coffeescript。

https://github.com/sstephenson/stitch