본문으로 건너뛰기

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, 이제 숨겨짐
  • $app.hideLoadingIndicator() — 앱 로딩 인디케이터 숨김 (레퍼런스 카운팅)
  • $app.setUseLoadingIndicator(enabled) — 자동 인디케이터 on/off
  • $form.showLoadingIndicator(timeoutSeconds) — 폼 영역만 로딩 인디케이터 (카운팅 없음)