$ watchが多すぎると、ウェブページ(特にモバイルデバイス)のパフォーマンスに関する問題が発生する可能性があります。無関係な$ watchを削除してアプリケーションを高速化する方法について説明します。
$ watchは、不要になったときに無効にすることができます。したがって、$ watchリストから$ watchを削除する時期を自由に選択できます。
の例を見てみましょう:
ファイル:
<body ng-controller="MainCtrl">
<input type="text" ng-model="text" /> {{updated}} times updated.
<button ng-click="stop()">Stop count</button>
</body>
$の時計機能自体のindex.html:
app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
$scope.updated = 0;
$scope.stop = function() {
textWatch();
};
var textWatch = $scope.$watch('text', function(newVal, oldVal) {
if (newVal === oldVal) { return; }
$scope.updated++;
});
});
ファイルをapp.js関数を返すイオンが呼び出されたときに$ watchをアンバインドします。だから、$ watchがもはや必要でなくなったら、$ watchが返す関数を呼び出すだけです。
問題は角度の書類にはウォッチャーを登録解除する必要がないと言われていますが、角度は私たちのために行います。 私はメモリリークの観点から問題を見ています。ウォッチャーを解放することでパフォーマンスが向上することを理解しています。 たとえば、私たちがルーティングの別のページに移動するときにメモリリークの観点から問題がありますか。 –