网亚机房管理软件博客

新实用主义典范

编写机房管理软件指令

只要表达式每次计算的结果不同,digest循环将持续运行下去。编写一个触发无线digest循环的简单表达式并不常见。不过,通过ngRepeat机房管理软件指令,过滤器可能很容易就搬起石头砸自己的脚。例如,在之前的样例中,我们有一个国家列表,使用一个含有普通字符串的数组进行表示。为将该字符串数组转换成一个含有name特性的对象数组,你可能认为可以使用过滤器。

如果我们运行该代码,控制台输出中将会显示出无限digest循环。作用域中有一个备用的watcgCollection函数,它只做浅层的相等性检查。这就是说,如果两个数组的大小不同或者数组中的某个元素不恒等于另一个数组中的元素,watchCollection函数将通过这种方式判断出两个数组是不相等的。注意在JavaScript中,只有当两个对象含有相同的内存地址时操作符才会返回true。实际中我们很少使用watchCollection函数,所以在AngularJS内部之外的地方不太可能看到它。

编译机房软件内部设置或者编译与链接

Compile函数和它与link函数的关系是一个常见的混淆来源。对于大部分将要编写的指令来说,编译机房软件内部设置是不必要的。使用Compile函数有两个主要原因。第一个是解决含有大量DOM操作的指令的性能问题——最常见的样例是ngRepeat和创建多个DOM元素的类似指令。第二个原因是编译函数可以修改指令的模板。不过第二个原因会受一点限制,因为Compile函数将在指令的作用域被创建之前运行。因此,Compile函数无法访问指令的作用域,所以它不能计算特性。

那么Compile函数真正的用途是什么呢?将通过构建内嵌ngRepeat指令的简化版本,浏览Compile函数的优点和限制。将把ngRepeat指令简化为ngRepeatOnce,实现一个常见的AngularJS性能优化:减少页面中监控器的数量。我们看到了在一个大型数组上使用ngRepeat指令将使页面变得迟缓,因为每个apply调用必须迭代整个数组。现在ngRepeatOnce通过不在底层数组上调用watch的方式改善了这个问题。该指令在用户从底层数组添加或者删除元素时不会更新,但是它允许处理比ngRepeat更大的数组。尽管无法在元素添加或者删除时更新是一个限制,但是在许多用例中这个功能是不必要的。

使用location追踪机房管理软件页面状态

修改URL哈希部分最常见的用例是:使用户可以保存一些页面内的状态,例如JavaScript变量或者用户的滚动位置。Location服务允许对URL的哈希部分做更多的操作。将使用location服务允许用户在图书预览中高亮显示文本,并在页面的URL中追踪它们高亮显示了什么。这将使用户可以收藏最喜爱的段落或者在社交媒体中分享有号召力的名言。

之前的代码演示了与location服务交互的基本设计模式。通常,使用location服务在URL中追踪JavaScript状态时,在机房管理软件页面加载之后(也就是控制器初始化时),我们首先会立即从URL中加载机房管理软件数据。该设计模式的第二个部分是在变量改变时更新URL,所以URL将与JavaScript状态保持一致。

«1»

Powered By Z-Blog 2.0 Doomsday Build 121221

版权所有©2007-2013 南京网亚计算机有限公司
QQ:502800066(购买咨询) 1074187861(技术支持) 邮件: sales@ji-fang.cn
电话:( 025)84533318 (025)84533319 (025)66671103 13913982176 传真: (025)84533320
地址: 江苏省南京市中山东路198号龙台国际大厦1205室