Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 使用Ember.js和ASP.NET MVC管理大型SPA中的模板_Asp.net Mvc 4_Ember.js_Handlebars.js - Fatal编程技术网

Asp.net mvc 4 使用Ember.js和ASP.NET MVC管理大型SPA中的模板

Asp.net mvc 4 使用Ember.js和ASP.NET MVC管理大型SPA中的模板,asp.net-mvc-4,ember.js,handlebars.js,Asp.net Mvc 4,Ember.js,Handlebars.js,我正在ASP.Net Web API项目中使用Ember.js将一个好的旧ASP.Net网站转换为一个单页应用程序。 我的团队和我自己的所有开发人员都是javascript新手。在过去的两周里,我们学习了SPA框架的基础,并对其进行了比较。如果我的问题听起来很愚蠢,我会提前道歉:) 到目前为止,我找到的所有余烬教程都将所有车把模板包含在一个文件中。我认为在时机成熟时将它们分割成单独的文件(*.hbs)是非常明显的,但事实并非如此。我可能完全遗漏了一些东西,但我找到了大约4种方法在需要模板时取回模

我正在ASP.Net Web API项目中使用Ember.js将一个好的旧ASP.Net网站转换为一个单页应用程序。 我的团队和我自己的所有开发人员都是javascript新手。在过去的两周里,我们学习了SPA框架的基础,并对其进行了比较。如果我的问题听起来很愚蠢,我会提前道歉:)

到目前为止,我找到的所有余烬教程都将所有车把模板包含在一个文件中。我认为在时机成熟时将它们分割成单独的文件(*.hbs)是非常明显的,但事实并非如此。我可能完全遗漏了一些东西,但我找到了大约4种方法在需要模板时取回模板。我想知道你会推荐哪种方法:

  • 在应用程序加载时连接并插入所有模板文件。我可以在服务器端编写一些C#代码,在应用程序加载时(即每次访问者进入应用程序时)将所有模板文件连接成一个模板文件。在处理方面,这对我来说似乎很奇怪,但也因为生成的HTML文件将非常繁重

  • 需要时通过Ajax动态加载每个模板。基本上就是这么做的。我有点喜欢这个解决方案,尽管我还没有尝试过。当我需要模板时,异步获取模板对我来说是有意义的,而不是在第一次加载时加载整个应用程序

  • 使用Asp.NETMVC的绑定机制。我发现了一些东西,比如在服务器端预编译模板并将其作为单个javascript文件返回。它可以正常工作,但我觉得随着我添加新模板,预编译文件将变得相当沉重

  • 使用Grunt和插件来预编译模板。我不熟悉Grunt,但如果我理解得很好,所有从事该项目的开发人员都必须安装Node.js+Grunt+学习如何使用命令提示符+记住在每次提交之前运行命令(如果他们修改了模板)。这对于网页设计师来说并不明显。向构建操作中添加grunt将需要整个开发团队(处理其他项目)在其机器上使用grunt(不可接受)

  • 我需要找到一个简单而优雅的解决方案来解决这个问题。我的项目是在一个解决方案与35个其他项目,我不能增加太多的复杂性,以建立,也不依赖于不稳定的库。也许当我认为我可以使用余烬进行我的项目时,我过于乐观了。欢迎任何建议

    您的#3是我见过的应用程序处理模板的最理想(也是最常见)的方式。有了经过编译和缩小的模板文件,您真的不必担心添加新模板时的性能问题,尤其是在利用缓存的情况下


    编译模板并立即提供的一个好处是,用户只需下载您的资源一次™, 用于下载后续每次页面加载的资源。这将带来美妙的用户体验。

    谢谢!我想我会坚持这个解决方案。您认为在这个编译过程中添加20个静态公共页面也有意义吗?