모바일 앱 사용자 지정 시 성능 고려 사항
Dynamics 365 Field Service 모바일 앱의 기반은 모델 기반 앱입니다. 따라서 고성능 앱에 대한 일반적인 지침과 모범 사례 및 모델 기반 앱에 대한 성능 고려 사항도 적용됩니다.
프로덕션 코드에서 Console.log 제거
콘솔에 데이터를 기록하면 콘솔에서 항목을 정리할 수 없어서 메모리 압력이 증가할 수 있습니다. 또한, 프로덕션 중에는 콘솔에 데이터를 기록하지 않는 것이 가장 좋습니다. 민감한 데이터가 뜻하지 않게 최종 사용자에게 노출될 수 있기 때문입니다. console.log
, console.warn
, console.error
가 해당됩니다.
QuickNotes를 사용하지 않으면 QuickNotes WebResource 제거
QuickNotes 컨트롤 번들은 Field Service 안에 두 번 존재합니다. 한 번은 PCF 컨트롤로, 다른 한 번은 웹 리소스로 존재합니다. QuickNotes 컨트롤(또는 다른 컨트롤)을 사용하지 않으면, 양식 속성에 있는 웹 리소스에서 컨트롤의 bundle.js
(있는 경우)을 제거합니다. 이렇게 하면 필요하지 않을 때 제어 코드 다운로드를 방지합니다.
예약이 가능한 리소스 예약 엔터티 예약 및 작업 주문 양식으로 이동하여 양식 속성을 열고 이벤트 탭에서 cc_MscrmControls.FieldControls.QuickNotesControl/bundle.js
항목을 제거하여 번들을 제거할 수 있습니다.
PCF 컨트롤에서 Office UI 가져오기 축소
대화형 UI 구성 요소에 @fluentui/react
라이브러리를 사용하는 경우, 가져오기가 정의된 방식에 따라 의도한 것보다 더 많은 모듈을 가져올 수 있습니다. 구성 요소를 가져오는 경로를 구체적으로 지정하면 구성 요소 크기를 많이 줄일 수 있습니다(결과적으로 다운로드해야 하는 데이터가 줄어듦).
예:
import { Button } from '@fluentui/react'
should be written as:
import { Button } from '@fluentui/react/lib/Button';
연결된 양식을 사용하여 다른 엔터티 간 탐색 최소화
Field Service를 사용하면 양식에 여러 테이블의 데이터를 사용할 수 있습니다. 탐색 작업이 적다는 것은 로딩 시간이 줄어든다는 것을 의미합니다. 양식 구성 요소는 빠른 찾기 탐색을 대신 사용하는 시나리오와 비교하여 탐색할 때 더 낮은 피크 메모리 값을 갖습니다.
자세한 내용은 예약 및 작업 주문 양식 편집을 참조하십시오.
앱에서 사용하지 않는 컨트롤 제거
앱 사용자가 모바일 앱에서 특정 컨트롤을 사용하지 않는 경우 메모리 사용량을 줄이기 위해 이를 제거하는 것이 좋습니다. 양식에 불필요한 컨트롤이 있으면 앱의 메모리 소비가 증가하여 성능이 저하됩니다. 예를 들어 시간 표시줄 컨트롤은 기본적으로 여러 테이블과 양식에 포함되어 있습니다. 시나리오에서 시간 표시줄을 활용하지 않는 경우 시간 표시줄을 제거해 메모리 소비를 줄이는 것이 좋습니다.