为了观看对象作用域变量,将$scope.$watch
其objectEquality
设置为true还是$scope.$watchCollection
更好?
对于一个$scope
对象变量(如15点的属性,一些嵌套2级深)与输入元件和更新ng- model
在视图中,有多差$scope.$watch
与objectEquality
设定为true
?这是要避免的大事吗?
是$watchCollection
一个更好的解决方案?
我正在寻找轻松的方式来提高AngularJS应用程序的性能(我仍然停留在v1.2.2上)。
// ctrl scope var
$scope.filters = {
name: '',
info: {test: '', foo: '', bar: ''},
yep: ''
// etc ...
}
// ctrl watch ?
$scope.$watch('filters', function(newVal, oldVal) {
if(newVal !== oldVal) {
// call with updated filters
}
}, true);
// or ctrl watch collection ?
$scope.$watchCollection('filters', function(newVal, oldVal) {
if(newVal !== oldVal) {
// call with updated filters
}
});
// view input with ng-model
<input type="text" ng-model="filters.name" />
<input type="text" ng-model="filters.info.test" />
<input type="text" ng-model="filters.yep" />
// etc ...
该
$watchCollection()
功能是上述两种$watch()
配置之间的中间地带。它比普通的$
watch()函数更深入;但是,它几乎不像深度平等$watch()
函数那么昂贵。像$watch()
功能一样,
$watchCollection()
作品通过比较物理对象引用来完成;但是,与该$watch()
功能不同的是,该功能$watchCollection()
深入了一层,并对集合中的顶级项目执行了额外的浅层参考检查。
看到这个解释
备选方案2: 哪一个性能更好?
问题内容: 考虑以下两行代码 和 在性能上,以上两个语句有什么区别吗?我见过很多人使用后者,当被问及他们说这是最佳实践时,没有充分的理由。 问题答案: 没有不同。 第二个原因仅仅是因为C / C ++程序员总是执行分配而不是比较。 例如 而java编译器会生成编译错误。 因此,由于可读性强,我个人更喜欢第一个,人们倾向于从左到右阅读,而不是。
问题内容: String s = “”; for(i=0;i<....){ s = some Assignment; } 要么 我不需要在循环外再次使用“ s”。第一个选项可能更好,因为不会每次都初始化一个新的String。但是,第二个结果将导致变量的范围仅限于循环本身。 编辑:回应米尔豪斯的回答。在循环中将String分配给常量是没有意义的吗?不,这里的“某些分配”是指从要迭代的列表中获得的变化
在服务器端代码中,一般为了更好的性能,我们不应该使用“从表中选择*”,而应该根据需要查询必要的列(选择名称,从员工中添加)。这是我在数据库性能指南文章中读到的。 现在我用hibernate做了一个查询,我读到在hibernate中最好使用session.load(id)来根据主键检索记录。这将检索与给定“id”(表中的记录)的实体关联的所有列。 现在它是否与通用数据库性能指南相矛盾。使用hiber
问题内容: 我有一张叫订单的桌子。订单上的一列是customer_id, 我有一个名为“ customers”的表,具有10个字段 给定两个选项,如果我要建立一个订单对象数组并将其嵌入到一个客户对象中,那么我有两个选择。 选项1: 一种。首先查询订单表。b。遍历记录并查询人员表以获取人员的记录 这将是这样的: 选项2: 一种。在所有领域参加 #2是显而易见的,因为您只执行一个查询,而不是1 + [
本文向大家介绍请你讲讲 Statement 和 PreparedStatement 的区别?哪个性能更好?相关面试题,主要包含被问及请你讲讲 Statement 和 PreparedStatement 的区别?哪个性能更好?时的应答技巧和注意事项,需要的朋友参考一下 考察点:Statement 与Statement相比,①PreparedStatement接口代表预编译的语句,它主要的优势在于