フォアグラウンドアクションおよびバックグラウンドアクション
アクションの一括処理
キューに入れられた複数のフォアグラウンドアクションが 1 つの要求 (XHR) にまとめられ、ネットワークトラフィックが最小限に抑えられます。アクションの一括処理は、ボックスカーイング (貨車の連結) とも呼ばれ、貨車を連結する列車に似ています。
サーバですべてのアクションが処理されると、サーバは XHR 応答をクライアントに送信します。実行時間の長いアクションがボックスカーの中にある場合、その実行時間の長いアクションが完了するまで XHR 応答は保留されます。アクションをバックグラウンドとしてマークすると、そのアクションはフォアグラウンドアクションとは別に送信されます。このため、バックグラウンドアクションはフォアグラウンドアクションの応答時間に影響しません。
キュー内のサーバ側アクションが実行されると、まずフォアグラウンドアクションが実行されてから、バックグラウンドアクションが実行されます。バックグラウンドアクションはフォアグラウンドアクションと並行して実行され、フォアグラウンドアクションとバックグラウンドアクションの応答は順序に関係なく戻ることができます。
アクションのコールバックの実行順序を保証することはできません。サーバの処理時間のために、XHR 要求の送信順序とは異なる順序で XHR 応答が返される場合があります。
2 つのアクションを順次実行する必要がある場合、コンポーネントでその順序を統制する必要があります。コンポーネントで最初のアクションをキューに追加できます。最初のアクションのコールバックで、コンポーネントは次に 2 番目のアクションをキューに追加できます。
フレームワークで管理される要求の調整
フレームワークではフォアグランド要求とバックグラウンド要求が別々に調整されます。つまり、フレームワークでは、任意の時点で実行されるフォアグラウンド要求の数とバックグラウンドアクションの数を制御できます。フレームワークでは要求が自動的に調整され、ユーザが制御することはありません。フレームワークではフォアグラウンドとバックグラウンドの XHR の数が管理されますが、その数は使用可能なリソースによって異なります。
別々の調整が行われても、サーバへの過剰な数の要求など、条件によってはバックグラウンドアクションがパフォーマンスに影響する場合があります。
バックグラウンドアクションの設定
アクションをバックグラウンドアクションとしてマークするには、JavaScript でアクションオブジェクトに対して setBackground() メソッドをコールします。
1// set up the server-action action
2var action = cmp.get("c.serverEcho");
3// optionally set actions params
4//action.setParams({ firstName : cmp.get("v.firstName") });
5// set as a background action
6action.setBackground();