我需要在我的Angular应用程序中测量$digest持续时间(性能监控)。
理想情况下,我希望在启动$digest()和之前花点时间,在它执行之后再花点时间。
我计划用我的代码包装$digest函数,就像这样(伪代码):
function $digest(){
1. take timestamp
2. call to original $digest()
3. take timestamp
}此包装对应用程序的其余部分应该是透明的,因此每个人只需在不了解此包装的情况下继续调用$scope.$digest()即可。我希望避免对angular.js进行任何修改
问:我如何才能做到这一点?使用Angular 1.3
发布于 2016-07-21 15:16:00
您需要覆盖rootScope原型中的$digest。
angular.module('myModule', []).run(run);
function run($rootScope) {
var scopeProto = Object.getPrototypeOf($rootScope);
var originalDigest = scopeProto.$digest;
scopeProto.$digest = function(){
console.log("Hello from digest!");
originalDigest.call(this);
}
}Fiddle (打开控制台查看结果)。
https://stackoverflow.com/questions/38497093
复制相似问题