programing

Angularjs 지연 로그 실행 타이머 작업

randomtip 2023. 3. 12. 21:16
반응형

Angularjs 지연 로그 실행 타이머 작업

Ionic 앱을 구축하다 갑자기 디버깅이 매우 어려워졌습니다.브라우저가 장시간 실행 중인 타이머 태스크를 '지연'하고 있기 때문에 컨트롤러에서 코드를 1회만 실행할 수 있습니다(컨트롤러가 새로고침되어 있는 경우에도).

경고:

스크롤의 부드러움을 향상시키기 위해 지연된 장기 실행 타이머 작업입니다.crbug.com/574343 를 참조해 주세요.

원하는 것:

  • 경고와 경고 발생 원인에 대한 이해
  • 이러한 경고를 디버깅하는 방법에 대한 지침입니다.

잘 부탁드립니다.

업데이트 문제의 원인으로서 에러를 수신하지 않고 경고만 수신했을 뿐, 그 후 정상적으로 동작하고 있는 버전으로 롤백하고 있는 것을 주의해 주세요.

이 작업 버전에서도 경고가 표시되지만 응용 프로그램 실행에는 영향을 주지 않습니다.

$syslog를 사용하여 작업을 수행할 경우 작업을 중지하고 파기해야 합니다.그렇지 않으면 당신이 말한 오류가 생성됩니다.

예:

var timer = $timeout(
                        function() {
                            console.log( "Timeout executed", Date.now() );
                        },
                        2000
                    );

위와 같이 타임아웃을 시작하면 다음과 같이 타이머를 파기해야 합니다.

                    // When the DOM element is removed from the page,
                    // AngularJS will trigger the $destroy event on
                    // the scope. This gives us a chance to cancel any
                    // pending timer that we may have.
$scope.$on(
                        "$destroy",
                        function( event ) {
                            $timeout.cancel( timer );
                        }
                    );

뷰가 처음 로드되었을 때만 함수가 호출되었을 때 이 문제에 직면했습니다.콘솔에서 이 경고를 확인했지만 함수가 한 번만 호출되는 것과 관련이 있는지 여부를 알 수 없습니다.컨트롤러에서 함수 호출을 "$ionicView.enter"로 이동하면 뷰가 로드될 때마다 호출됩니다.

$scope.$on('$ionicView.enter', function () {
            callMyFunction();
        });

이게 도움이 됐으면 좋겠다.

브라우저에 최대 연결 수가 있는 것 같습니다.http 요청을 10개의 개별 http 요청과 비교하여 10개의 요청을 포함하는 단일 요청으로 줄일 수 있습니다.

당신의 질문에 대한 답변은 브라우저당 최대 http 요청과 비슷한 것입니다.

"서버/프록시당 기본 동시 지속 연결의 최대 수:"

브라우저의 최대 병렬 http 연결 수를 올바르게 가정하는 경우에도 여기에 답변합니다.

언급URL : https://stackoverflow.com/questions/36735501/angularjs-deferred-log-running-timer-tasks

반응형