コンポーネント
← すべてのコンポーネント

ライブカウンタ

stimeo--live-counter

開いている全タブで同時に動くカウンタ — HTML と broadcast 1 本だけ。

  • Core

stimeo--live-counter は、いいね・閲覧数・残席などの数値を Action Cable ストリームに束ね、購読中の全クライアントで同時に動かします。ローカルの increment アクションは表示を楽観的に即時加算しつつ、チャンネルへ increment を perform します。数を所有するのはサーバで、永続化して結果を broadcast します。照合するワイヤ契約は 2 形あります。推奨の絶対値 { count }(自然に冪等 — このカタログの LikesChannel が実演)と、差分 { delta, by } (by が自分の id と一致する受信は自分のエコーとしてスキップ。楽観加算で適用済みのため)です。DOM のテキストが唯一の真実で、初期値はサーバレンダリング — Turbo のキャッシュ復元や Morph 後も照合処理は不要です。1 回あたりのステップはアクションパラメータ data-stimeo--live-counter-delta-param で指定します(既定 1)。数値の書式や永続化はスコープ外(ロケール書式が要る場合は change を購読)。opt-in サブパス stimeo-ui/cable に同梱で、コアはゼロ依存のままです。

実行中

このページをもう 1 つのタブで開き、どちらかで「いいね」を押してください。サーバが所有するカウントが両方のタブで収束します。自分のクリックは楽観的に即時加算され、 broadcast の絶対値がそれを確定します。

0