반응형
퍼포먼스를 중시하는 $broadcast 또는 $watch란 무엇입니까?
사용자의 역할이 변경될 때마다 메뉴를 새로고침해야 하는 상황이 있습니다(여러 회사에서 한 명의 사용자가 역할을 가질 수 있습니다).
나는 이 문제에 접근하는 가장 좋은 방법이 무엇인지 궁금했다.
현재 다음 작업을 하고 있습니다.
app.controller('menuLoadingCtrl', function($location, $scope, authService){
$scope.model.initialRole = authService.getRole();
$scope.$watch(function(){return authService.getRole()}, function(val){
if(val && val != $scope.model.initialRole){
$scope.layout.menuSrc = 'partials/menu.html';
}
});
})
사용자를 메뉴 로드 보기로 리디렉션하고 역할 로드가 완료되면 다시 메뉴 보기로 리디렉션합니다.함수로 포장되어 있습니다.
$scope.layout.reloadMenu = function(){
$scope.layout.menuSrc = 'partials/menuLoading.html';
}
메뉴를 새로고침하고 싶은 시나리오에서 호출합니다.
$rootScope의 서비스에서 이 이벤트를 브로드캐스트한 후 컨트롤러에서 재생함으로써 이 프로세스를 보다 자동화할 수 있는지 궁금합니다.
이에 대한 어떤 의견도 주시면 대단히 감사하겠습니다.
$watch()
먼지 검사를 수행하고 있습니다. 이 함수는 각 다이제스트 사이클을 비교합니다.반면에,$broadcast()
는 이벤트가 존재하는 경우에만 이벤트를 전파합니다.당연히.$broadcast()
보다 싸다$watch()
.
그런데 굳이 퍼포먼스를 신경 쓸 필요가 있었나?순환에 의한 하나의 원시적인 비교는 아무것도 아니다.하지만 개념적으로는$watch()
필요한 것은 분명합니다.변수가 변경될 때마다 액션을 수행합니다.나는 그것을 사용하는 것을 상상할 수 없다.$broadcast()
여기서.
언급URL : https://stackoverflow.com/questions/19616520/what-is-cheaper-performance-wise-broadcast-or-watch
반응형
'programing' 카테고리의 다른 글
데이터베이스 구조 변경에 대한 버전 관리 시스템이 있습니까? (0) | 2023.03.06 |
---|---|
CSS 포인터 이벤트 및 커서 스타일 (0) | 2023.03.06 |
리액트 훅 형태로 리액트 날짜 피커를 사용할 수 있습니까? (0) | 2023.03.06 |
Angular JS는 Google Closure와 어떤 관계가 있습니까? (0) | 2023.03.06 |
React가 있는 Wordpress 플러그인의 쇼트 코드 특성 (0) | 2023.03.06 |