【发布时间】:2014-07-26 15:48:12
【问题描述】:
背景:我们正在将 ASP.NET 应用程序从传统的 WebForms 移植到 Web API + Angular。该应用程序主要用于互联网连接较差的国家/地区,我们在实践中发现延迟是比带宽更大的问题。因此,我们的首要任务是减少对服务器的请求总数,即使这意味着预加载脚本或用户可能最终不需要的其他资源。
问题: 当我们用 Angular 指令和模板替换 WebForms 用户控件 (*.ascx) 时,小的 HTML 模板文件的数量正在激增;所以你必须为任何给定的视图发出大量的服务器请求,这在高延迟环境中是一个大问题。
一种可能的方法:我正在考虑使用T4 将应用程序使用的所有模板合并到一个文件中,看起来像这样:
myApp.templates = {};
myApp.templates.myFirstDirective = "<div> ... lots of markup here ... </div>"
myApp.templates.mySecondDirective = "<table> ... more markup ... </table>"
该文件将被浏览器请求一次并被缓存,因此后续页面加载不需要进一步往返服务器。然后模板将可用于所有指令,这样他们就无需引用templateUrl,而是像这样提取所需的模板
return {
link: link,
template: myApp.templates.myFirstDirective,
... etc
}
问题:这是个好主意吗?有没有更好或更原生的方式将 Angular 模板组合到一个文件中?
【问题讨论】:
标签: javascript asp.net angularjs performance