showLoadingIndicator
앱 전체에 로딩 인디케이터 오버레이를 표시합니다. 레퍼런스 카운팅 방식으로 중첩 호출을 안전하게 지원합니다.
Parameters
timeoutSeconds(number): 자동 숨김 타임아웃(초).0을 전달하면 기본값 10초 적용
Returns
없음 (void)
Description
lucyNavigator.context(앱 루트 오버레이)에 로딩 인디케이터를 표시합니다. 레퍼런스 카운팅 방식으로 동작합니다.
show호출마다 내부 카운터(_indicatorRefCount) 증가- 카운터가 0 → 1이 될 때만 실제로 오버레이 표시
hide호출마다 카운터 감소, 0이 될 때만 실제로 숨겨짐
따라서 여러 비동기 요청이 중첩될 때 show/hide 횟수만 맞추면 안전하게 동작합니다.
$app vs $form 상세 비교
| 구분 | $app.showLoadingIndicator | $form.showLoadingIndicator |
|---|---|---|
| 표시 범위 | 앱 전체 (루트 오버레이) | 해당 폼 영역만 |
| 레퍼런스 카운팅 | ✅ 있음 — 중첩 호출 안전 | ❌ 없음 — 즉시 show/hide |
| 기본 타임아웃 (0 전달 시) | 10초 | 20초 |
| 중첩 show 후 hide 1회 | 카운터만 감소, 아직 표시 중 | 즉시 사라짐 |
언제 $app을 사용할까?
- 앱 전체를 블로킹해야 할 때 (로그인, 전역 초기화 등)
- 여러 비동기 요청이 중첩되어 모두 완료돼야 숨겨야 할 때
언제 $form을 사용할까?
- 특정 폼 영역만 로딩 중임을 표시할 때
- 중첩 없는 단건 요청
Example
// 타임아웃 지정
$app.showLoadingIndicator(5);
$http.get("/api/data", function(res) {
$app.hideLoadingIndicator();
});
// 중첩 호출 예시 (N번 show → N번 hide 필요)
$app.showLoadingIndicator(0); // refCount: 1
$app.showLoadingIndicator(0); // refCount: 2
$app.hideLoadingIndicator(); // refCount: 1, 아직 표시 중
$app.hideLoadingIndicator(); // refCount: 0, 이제 숨겨짐
Related
$app.hideLoadingIndicator()— 앱 로딩 인디케이터 숨김 (레퍼런스 카운팅)$app.setUseLoadingIndicator(enabled)— 자동 인디케이터 on/off$form.showLoadingIndicator(timeoutSeconds)— 폼 영역만 로딩 인디케이터 (카운팅 없음)