Backbone.js 主干网(木偶网)异步模块化模板加载

Backbone.js 主干网(木偶网)异步模块化模板加载,backbone.js,requirejs,marionette,Backbone.js,Requirejs,Marionette,目前,在我正在进行的一个主干项目中,我已经按模块组合了所有模板。比如: users.html #配置文件模板 #更改密码模板 something.html #一些模板 #另一个模板 然后,我使用$按模块加载模板。我打算使用主干木偶加载这些模板,建议的方法是: 这意味着我必须将我的模板分解成更多的文件,这意味着更多的网络请求。我想知道推荐的方法是什么?通过模块将所有内容合并成一个大文件或多个小文件或介于两者之间的某个地方?如果是模块,那么我需要在loadTemplate(module

目前,在我正在进行的一个主干项目中,我已经按模块组合了所有模板。比如:

  • users.html
    • #配置文件模板
    • #更改密码模板
  • something.html
    • #一些模板
    • #另一个模板
然后,我使用
$按模块加载模板。我打算使用主干木偶加载这些模板,建议的方法是:

这意味着我必须将我的模板分解成更多的文件,这意味着更多的网络请求。我想知道推荐的方法是什么?通过模块将所有内容合并成一个大文件或多个小文件或介于两者之间的某个地方?如果是模块,那么我需要在
loadTemplate(moduleUrl,templateSelector,callback)中添加一个参数。
我还没有尝试过,明天会这样做,但是即使它没有破坏任何东西,建议这样做吗?我正在覆盖第三方框架方法,更糟糕的是,更改其方法签名?那么,推荐的解决方案是什么

也许因为我使用的是RequireJS,我的模板可以通过Require加载

我想知道推荐的方法是什么

建议不要异步加载文件。只要有可能,立即加载所有需要的内容

“异步并不能使事情进展得很快。异步是当你不能使事情进展得足够快时所做的事情。”

也许因为我使用的是RequireJS,我的模板可以通过Require加载

让RequireJS通过预编译模板来优化模板,并将它们连接到应用程序文件w/r.js插件中。这将显著提高应用程序的性能

如果您确实需要异步加载模板和模块,请按照您的想法将内容分组到尽可能少的文件中。您需要修改引用的代码来处理此问题

我想知道推荐的方法是什么

建议不要异步加载文件。只要有可能,立即加载所有需要的内容

“异步并不能使事情进展得很快。异步是当你不能使事情进展得足够快时所做的事情。”

也许因为我使用的是RequireJS,我的模板可以通过Require加载

让RequireJS通过预编译模板来优化模板,并将它们连接到应用程序文件w/r.js插件中。这将显著提高应用程序的性能


如果您确实需要异步加载模板和模块,请按照您的想法将内容分组到尽可能少的文件中。您需要修改您引用的代码来处理此问题。

我不希望我的应用程序变得很大,但就我所知,是否有一个限制,即一旦连接的文件超过5MB,我就应该开始分解它们?只是想知道。。。这个限制包括JS还是CSS,图像等等?5百万是巨大的,我会在那之前打破它。我不知道是否有一种普遍接受的启发式方法,因为这在很大程度上取决于您有多少框架代码和应用程序代码。也许是几十万?也许半个梅格?你可能想打开一个新的问题来展开讨论,使用“JavaScript”标记我不希望我的应用程序变得非常大,但就知识而言,是否有一个限制,即一旦连接的文件超过5MB,我应该开始分解它们?只是想知道。。。这个限制包括JS还是CSS,图像等等?5百万是巨大的,我会在那之前打破它。我不知道是否有一种普遍接受的启发式方法,因为这在很大程度上取决于您有多少框架代码和应用程序代码。也许是几十万?也许半个梅格?您可能想用“JavaScript”标记打开一个新的问题来进行讨论
Backbone.Marionette.TemplateCache.loadTemplate = function(templateId, callback){
  var that = this;
  var url = templateId + ".html";

  $.get(url, function(templateHtml){
    var template = $(templateHtml).find(templateId);
    callback(template);
  });
}