メインコンテンツまでスキップ

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) — フォーム領域のみのローディングインジケーター(カウントなし)