アプリ/フロント基盤

Astroとは|40個の部品のうち9個だけ動かしたら、配る量が700.0KBから157.6KBになった

配る量はどれだけ減るのか既定では何が起きるのか動く部分どうしはどう関わるのか

部品40個・655.0KBのページで、操作を受け付けるのは9個・147.5KBでした。

全部動かすと700.0KBを配ります。動く9個だけにすると157.6KBで、22.5%です。

この記事の要点

  • 全部動かすと700.0KB
  • 動く分だけなら157.6KB
  • 既定はHTMLとCSSだけ
  • 島は独立して動く

40個のうち9個だけ動かしたら、配る量が700.0KBから157.6KBになった

動かない部品は、組み上げた結果を文字として送れば済みます。減るのはその分です。

Astroが置く単位はです。出典はこれを次のように定めています。

Astroでいう島とは、それ以外は静的なHTMLのページ上にある、機能を強化された画面部品であるという言い方です。

「それ以外は静的」の部分が効きます。島でない部品は配らなくてよいということです。

配る範囲を変える

部品40個・合わせて655.0KBのページを用意しました。そのうち操作を受け付けるのは9個・147.5KBです。

text
1ページの部品 40個、合わせて 655.0KB
うち操作を受け付ける部品は 9個・147.5KB。仕組み自体は 45KB

配り方                      配る量      全体に対する割合
全部を動かす                         700.0KB            100.0%
動く部品だけ動かす                      192.5KB             27.5%
動く部品だけ・仕組みも分割                  157.6KB             22.5%
どれも動かさない                         0.0KB              0.0%

全部動かすと700.0KBです。部品655.0KBに、動かす仕組み45KBが乗ります。

動く9個だけにすると192.5KB、仕組みも分割すると157.6KBになります。全体の22.5%です。

減らない部分がある

157.6KBのうち147.5KBは動く部品そのものです。ここは削れません。

つまり下限は動く部品の合計で決まります。動く部品が多いページでは、この作りにしても効きません。

効くのは、表示だけの部品が量の大半を占めるページです。記事や一覧が該当します。

減るのは、動かない部品と仕組みの分だけ。

単位: KB700全部を動かす-507動かない31個を外す-34.9仕組みも分割する158動く9個だけ残る157.6KBのうち147.5KBは動く部品そのもの。ここから先は減らせない。
図1 ── 配る量の減り方
出典Astro 公式ドキュメント「Islands architecture」(Concepts)2026-08-18 確認
In Astro, an island is an enhanced UI component on an otherwise static page of HTML.
原文Astro 公式ドキュメント「Islands architecture」(Concepts) この内容の有効期限2027-02-18

既定が「動かさない」なので、足すほうに手が要る

何も指定しなければHTMLとCSSだけになります。動かしたい部品を1つずつ選ぶ形です。

Astroの既定は動かさないです。出典もそう定めています。

既定では、Astroはすべての画面部品を自動的にHTMLとCSSだけに描き出し、利用者側で動く記述をすべて自動的に取り除くという記述です。

既定の向きが逆になっています。減らす作業ではなく、足す作業になります。

足す側になると何が変わるか

  1. 入れ忘れは動かない部品になる。多く配ってしまうことはない
  2. 動く部品の一覧が指定として残る。数えられる
  3. 増える理由が明示になる。誰かが書いた行としてたどれる
  4. 使っていない部品が混ざっても、配る量には出ない

1番目が要点です。指定を忘れた結果は「動かない」で、配る量は増えません

その代わり、動かない不具合は本番で気づきにくいものになります。見た目は正しく出るためです。

確かめ方

この作りでは、操作を試す検査が要ります。表示だけを見る検査では、動かない部品を見つけられません。

画面を操作する検査の費用はE2Eテストの記事で測っています。全部を通す必要はなく、島の数だけあれば足ります。

出典Astro 公式ドキュメント「Islands architecture」(Concepts)2026-08-18 確認
By default, Astro will automatically render every UI component to just HTML & CSS, stripping out all client-side JavaScript automatically.
原文Astro 公式ドキュメント「Islands architecture」(Concepts) この内容の有効期限2027-02-18

島どうしがつながっていないので、重い部品を待たない

独立して動くため、1つが遅くても他が止まりません。その代わり共有も自動では起きません。

Astroの島は、読み込みの上で互いを待ちません。出典は軽い部品と重い部品が並ぶ例をこう説明しています。

2つは並行して読み込まれ、隔離された状態で動き出す。つまり見出しは、ページ下方にあるより重い回転表示を待つことなく、ただちに操作できるようになるという記述です。

順番の依存がありません。上の軽い部品が、下の重い部品を待つことはないということです。

混ぜられる範囲

独立している以上、島ごとに違う枠組みの部品を置けます。同じページに別々の作りが同居できます。

ただし配る量では不利になります。枠組みが2つあれば、仕組みも2つぶん載ります。

この計測の45KBが2つになると、157.6KBは190KB前後まで戻ります。混ぜられることと、混ぜるべきことは別です。

値のやりとり

島をまたいだ値の共有はできます。ただし出典によれば、それぞれが別々の部品の文脈で動いているという前提の上での共有です。

枠組みが用意する共有の仕組みは、この境界を越えません。島の外に置いた入れ物を通してやりとりする形になります。

静的なHTMLの上に、独立した島が並ぶ。

ページ全体(部品40個・655.0KB)L3島(部品9個・147.5KB)L2島どうしの値のやりとりL1依存の向き40個のうち9個だけが島。残る31個は文字として送るだけで、動かす記述を配らない。
図2 ── 1ページの中身の分かれ方
余談 この計測での注意

部品の大きさと、操作を受け付ける割合は式で作った値です。実際のページでは大きい部品ほど操作を受け付けやすいなどの偏りがあり、その場合は減り方が小さくなります。仕組みを分割したときの45KBの按分も概算です。ここで見せているのは、下限が動く部品の合計で決まるという関係で、その下限は自分のページで数えれば分かります。

出典Astro 公式ドキュメント「Islands architecture」(Concepts)2026-08-18 確認
The two load in parallel and hydrate in isolation, meaning that the header becomes interactive immediately without having to wait for the heavier carousel lower down the page.
原文Astro 公式ドキュメント「Islands architecture」(Concepts) この内容の有効期限2027-02-18

よくある質問

配る量はどれだけ減りますか
動く部品の割合によります。この計測では40個中9個が動く構成で、700.0KBが157.6KBになりました。
何も動かさない場合はどうなりますか
0KBです。組み上げた結果をHTMLとして送るだけなので、動かす仕組み自体も要りません。
既定では何が配られますか
HTMLとCSSだけです。部品は既定でHTMLとCSSに描き出され、利用者側で動く部分は取り除かれます。
動く部分どうしは影響しますか
しません。それぞれが独立して動くので、重い部品の読み込みを軽い部品が待つことはありません。

まとめ

  • 大部分を静的なHTMLで出す
  • 操作の要る所だけ動かす
  • 既定は動かさない
  • 動く部分は互いに独立

今日から始められること

  1. いまのページの部品を数える
  2. そのうち操作を受け付けるものを数える
  3. 動かない部品の大きさを合計する
  4. その合計が配る量に占める割合を見る

実務で組んだAstroのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る