AngularJS的指令中经常定义模板(template或templateUrl),可以选择将Html模板直接寄宿在WEB容器中,如Tomcat、IIS、Nginx、NodeJs Express,也可以选择ngTemplate模式,将Html模板放在view的page上,或直接将所有模板打包成一个javascript和应用的javascript合并成一个javascript文件一起发布。

  对于ngTemplate寄宿模式,ngTemplate模板,可以在页面中这样定义

  <script type="text/ng-template" id="/tpl.html">

    Content of the template

  </script>

  其会在编译compile阶段被Angular解析,并放在$templateCache模板缓存服务中。这是Angular内置的script标签,它会在compile阶段遍历所有script标签,当script类型为text/ng-template时候,会将其内容存放在$templateCache模板缓存服务中,供其他的directie、route、ng-inclue使用。

  $templateCache模板缓存服务,是为了对Html模板进行缓存而创建的服务,Angular在发送Html模板加载请求前,首先会从$templateCache缓存中查找是否有与所请求的URL对应的模板数据,如下

  $templateCache.get('templateId.html')

  如果找到了,就用缓存中的HTML模板,而不再发送Ajax请求去获取Html模板。

  另外,对于所有指定和模板AngularJS是默认开启。

  SPA,就是把View的显示处理等表现层逻辑都推到前端,而后端只提供只与数据和业务相关的RESTful API,这样对于一个应用程序来说,用来处理数据的业务逻辑可以被多个客户应用所使用,可以被浏览器为主的Web应用所使用,也可以被winform为主的桌面GUI程序所使用,也可以被移动APP客户端程序所使用,数据和业务等核心逻辑是可以被共享和复用的,将View的逻辑分开,留给不同场景的客户端分别实现,这将是更好的解决方案。

  对于一个应用程序View逻辑的分离,HTML、Javascript、Css这类静态资源,是不会发生变化的,可以自由缓存在客户端,这样可以减少服务端交互,为了进一步提升性能,我们可以把这类静态资源分离部署,利用Nginx等反向代理服务器或CDN服务,让我们的应用程序获得更好的响应速度与延展性。

  编译的示意代码:

  

AngularJS ngTemplate寄宿方式 模板缓存 $templateCache的更多相关文章

  1. ng-template寄宿方式

    如果你是一个angular的开发者的话,对于ng-html2js你应该 很熟悉.对于angular的指令,我们经常需要定义模板( directive template/templateUrl),你可以 ...

  2. (转)WCF开发框架形成之旅---WCF的几种寄宿方式

    WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便.高效提供服务调用.本文分别对这几种方式进行详 ...

  3. WCF寄宿方式

    WCF开发框架形成之旅---WCF的几种寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者 ...

  4. WCF开发框架形成之旅---WCF的几种寄宿方式

    WCF开发框架形成之旅---WCF的几种寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者 ...

  5. 微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务

    WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便.高效提供服务调用.本文分别对这几种方式进行详 ...

  6. [转]WCF的几种寄宿方式

    转自:WCF开发框架形成之旅---WCF的几种寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为 ...

  7. WCF :IIS寄宿方式的Web地址、BaseAddress和EndPoint Address的关系

    对于在IIS中通过W3SVC或WAS寄宿的WCF Service,其在浏览器中显示的地址(Web地址),与其配置文件中的BaseAddress和EndPoint Address有什么关系呢?让我们来分 ...

  8. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)

    一.ASP.NET Web API接口定义 ASP.NET Web API默认实现了Action方法和HTTP方法的映射,Action方法方法名体现了其能处理的请求必须采用的HTTP方法 二.寄宿方式 ...

  9. AngularJs $templateCache 和 $templateRequest 模板缓存

    $templateCache 第一次使用模板,它被加载到模板缓存中,以便快速检索.你可以直接将模板标签加载到缓存中,或者通过$templateCache服务. 通过script标签: <scri ...

随机推荐

  1. nested exception is java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceExceptionTranslator

    该问题是少了一个spring-tx-的jar包,把该包加入到buildpath中就行了. 参考链接:http://blog.csdn.net/Rongbo_J/article/details/4666 ...

  2. ContactDetail 和 ContactEditor 界面头像响应点击过程

    1,联系人详情界面 ContactDetailFragment中处理,ViewAdapter装载数据显示头像 private final class ViewAdapter extends BaseA ...

  3. SQL 创建联合主键Table

    CREATE TABLE [User_Instance]( [IntanceID] [int] NOT NULL, ) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADD ...

  4. 几张图片帮助记忆docker基本原理(转)

    写的非常好的一篇文章,不知道为什么被删除了. 利用Google快照,做个存档. 快照地址:地址 作者地址:青牛 什么是dockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotC ...

  5. canvas 实现弹跳效果

    一:创建画布 <canvas width="600" height="600" id="canvas"></canvas& ...

  6. Mysql 数据库修改datadir和调整默认引擎要注意的问题

    数据库更改 datadir 默认位置: 首先前面的基础操作我就不多说了,无非是复制mysqldata目录,然后修改 my.conf 配置文件 datadir 的 路径地址.然后重启mysql.这里可能 ...

  7. 2019.02.07 bzoj4784: [Zjoi2017]仙人掌(仙人掌+树形dp)

    传送门 题意:给一个无向连通图,问给它加边形成仙人掌的方案数. 思路: 先考虑给一棵树加边形成仙人掌的方案数. 这个显然可以做树形dp. fif_ifi​表示把iii为根的子树加边形成仙人掌的方案数. ...

  8. 2018.12.23 bzoj2865&&1396: 字符串识别(后缀自动机+线段树)

    传送门 卡空间差评! 题意简述:给一个字串,对于每个位置求出经过这个位置且只在字串中出现一次的子串的长度的最小值. 解法:先建出samsamsam,显然只有当sizep=1size_p=1sizep​ ...

  9. java Concurrent包学习笔记(一):ExecutorService

    一.介绍 ExecutorService是java.util.concurrent包中的一个线程池实现接口.其有两个实现类: 1)ThreadPoolExecutor:普通线程池通过配置线程池大小,能 ...

  10. python的6种基本数据类型--字典

    python的6种基本数据类型--字典   字典 字典的定义与特性 字典是Python语言中唯一的映射类型. 定义:{key1:value1,key2:value2} 1.键与值用冒号":& ...