WEBサイト・SEO

サイト更新後も開いたタブが古いまま?Service Workerの待機と切替の確かめ方

受注メモを残し、画面の更新について担当者へ相談する架空の仕事の情景。

Webサイト・SEO · 実務ガイド

『サイトを更新したのに、朝から開いた画面だけ古い』。営業担当の受注メモを消して再読み込みしてよいか、迷う場面です。Service Workerという通信を扱う仕組みがある画面では、新しい版が準備できても、開いているタブは旧版の担当下に残ることがあります。

この記事では、架空の受注メモ画面で旧版が残る例を使います。配信版・画面版と、待機中・活動中・今のタブを担当するWorkerを分けて読み、未送信の入力を保全してから切替結果を確認する順序を説明します。本文の図と比較表から、新版の配信と開いたタブへの適用の違いが分かります。編集側の限定したローカル実記録と、自社サイトでの結果は区別してください。

受注メモを残し、画面の更新について担当者へ相談する架空の仕事の情景。
AIで生成した説明用の架空の仕事の情景です。実サイトの画面や更新結果を撮影したものではありません。

営業担当が入力したメモを残し、更新担当へ画面の版を確かめる場面を扱います。写真は説明用の架空の仕事の情景として制作したもので、実サイトのService Workerの状態、入力保存の完了、取引先への送信や業務再開を証明しません。

この記事でできるようになること

  • 新版の配信と、開いたタブへの適用を区別し、古い表示が残る段階を絞る方法。
  • 未送信のメモの保存を確認してから切り替える手順。
  • 新版の導入失敗、待機の継続、画面と通信担当の不一致を分けて判断する方法。

01 / Webサイト・SEO

受注画面を更新したのに、営業担当のタブだけ古いのはなぜ?

Service Workerが旧版の応答を担当している可能性を、配信版とタブの状態を分けて確かめます。

架空教材の配信版はB、先に開いたタブの画面と通信担当はA。未送信のメモを残して、3つの状態を別々に確認する。
架空の受注メモ教材の例です。Bを配信したことと、開いたタブがBを使ったことを分けます。自社の状態・原因は別に確認します。

架空の受注メモ教材では、更新担当がBを配信しても、先に開いたタブの画面とその通信担当はAのままという状態を扱います。配信版、表示版、今のタブを担当するcontrollerを別欄で読み、未送信のメモを保全します。Service Workerを使っていないサイトもあるため、古い表示だけで原因を決めません。これは教材の対応関係で、自社サイトの観測結果ではありません。

Service Workerは、ページとは別に動いて通信の応答を扱う仕組みです。キャッシュという保存済みのコピーを返すこともあります。更新時に交代を待つのは、利用中の旧画面と新しい通信処理が不用意に混ざるのを避けるためです。ただし、この仕組みを使わないサイトもあるので、古い表示だけで原因を決めません。

更新の途中には、旧Worker Aが使われたまま新Worker Bが準備される時間があります。教材では画面の『表示版A』、サーバーの『配信版B』、今のタブを担当する『controller A』を別々に見ます。Bを配信できたことだけで、先に開いたタブがBを利用したとは言えません。

更新担当は、古い画面のURL、確認日時、ブラウザ、操作前後の版を記録します。Service Workerの登録がない、違うURLを見ている、元の配信内容もAのままなら、配信先や通常のHTTPキャッシュなど別の原因を調べます。既存の入力を消してから探す必要はありません。

症状を切り分ける最初の観察
観察次に確かめる対象
配信B/タブA/controller AService Workerのwaitingとactive
登録なし/タブA配信URLやHTTP側の応答
配信もA更新したファイル・配信先
ここからできること

古い画面1件について、配信版と表示版が同じか更新担当へ確認してください。入力を消す操作より先に、どの版が残っているかを確かめます。

この章の根拠:出典3出典4

02 / Webサイト・SEO

新しい版は準備済み?waiting・active・controllerを見分ける

waiting、active、controllerを3つの別欄で読み、同じSW URLから版を推測しません。

架空教材ではBがwaitingで待機し、登録のactiveはA、先に開いたタブのcontrollerもA。待機中のBから先に開いたタブへの制御線はない。
waiting・active・controllerを別々に読みます。Bの準備と、今のタブをBが担当することは同じではありません。

架空教材の交代待ちでは、登録のwaitingはB、activeはA、先に開いたタブのcontrollerはAです。図のAと先に開いたタブの線は今のページを担当する関係を示し、Bの待機を先に開いたタブへの適用完了へ読み替えません。実際の確認では読取日時と各欄の返答を残し、返答がない欄や自社の状態を教材の期待値で埋めません。

waitingは、導入の準備が済んで交代を待つWorkerです。activeは、その登録で活動中、または活動開始の処理中のWorkerです。controllerは、今のページを制御するWorkerです。『制御』は、このページの通信を扱う役割を指します。登録のactiveがあっても、初回に開いたページのcontrollerは空になる場合があります。

開発担当は、登録のwaiting・activeと、今のページを担当するcontrollerを別々に読みます。Service WorkerのURLが同じでも、動いている版まで同じとは限りません。自社のリリース識別の方法を確認し、Workerから版名の返答を得られない場合は、期待値で埋めず未確認として残します。

開発担当は、今のページに合う登録と通信担当を読む

会社が認めたHTTPSの確認環境で、開発担当が対象ページの開発者ツールにあるConsole(値やエラーを表示する確認欄)を開きます。次のコードは登録と状態を読むだけで、登録の追加・更新・削除やキャッシュ消去は行いません。対象ページ以外の画面で実行すると、その画面に合う登録を調べることになるため、先にURLを合わせてください。

画面が狭い場合は、コード欄を横に動かして行の末尾まで読めます。

if (!("serviceWorker" in navigator)) {
  console.log("このページでは読み取れません");
} else {
  navigator.serviceWorker.getRegistration()
    .then((registration) => {
      console.table({
        "登録範囲": registration?.scope ?? "登録なし",
        "交代待ち": registration?.waiting?.state ?? "なし",
        "活動中": registration?.active?.state ?? "なし",
        "このページの担当":
          navigator.serviceWorker.controller?.state ?? "なし"
      });
    })
    .catch((error) => console.error("読取りに失敗", error));
}

getRegistration()は、今のページのURLに担当範囲が合う登録を読みます。仕様はMDNのgetRegistration()の説明で確認できます。「登録なし」なら、このURLに合う登録が取得されていません。「読取りに失敗」というエラーは「なし」と区別します。

このコードで分かるのは登録範囲とinstalled・activatedなどの状態で、A版・B版の識別ではありません。版名は自社のリリース識別方法で別に照合します。例えば表の交代待ちがinstalled、活動中とこのページの担当がactivatedでも、その文字だけからB・A・Aとは決められません。Workerから版名を返す仕組みがない場合は、URLが同じという理由で版を埋めず、更新担当と識別方法をそろえます。

waiting B、active A、controller Aなら、Bは準備済みで、そのタブはまだAの担当下です。一方、waitingが空なら、先にactiveとcontrollerの版も読みます。両方がBなら交代済みの候補であり、次は画面版と保存した入力を照合します。Aのままなら、新しい内容の配信、登録先、導入エラーを調べます。waitingが空という一項目だけでは、成功にも失敗にも決めません。強制再読み込みではcontrollerが空になる場合があるため、通常の再読み込みと区別してください。

比較表は横に動かして全ての列を確認できます。

AからBへ交代待ちの教材例
欄教材期待意味
画面版A読み込まれたHTMLの版
配信版B今サーバーが選んでいる版
waitingB / installedBの導入準備が済んだ
activeA / activated登録の利用中Worker
controllerA / activated先に開いたタブを担当するWorker
ここからできること

waiting・active・controllerの実値と読取日時を別欄へ保存してください。

この章の根拠:出典1出典2出典3出典11

03 / Webサイト・SEO

2つのタブを開いたまま新版を配信すると、何が残る?

確認環境で旧版を使う2つのタブを残すと、新版が準備済みでも各タブは旧版の担当下に残る場合があります。

専用ローカル教材の期待では、先に開いたタブと後から開いたタブの画面はAで、両方の通信担当もA。Bの配信と更新確認後の待機は、タブがBを使うことと別に示す。
Aの2タブを残したままBを配信する教材の期待です。Bの導入・待機と、各タブのB利用を区別します。

専用ローカル教材では、controller Aを確認した先に開いたタブと後から開いたタブを残してBを配信し、更新確認後にwaiting Bと各タブの実値を読みます。配信B、更新の要求、waiting B、画面と担当がAという各状態は別々の確認点です。図はこの教材の期待を示します。編集側の2026年10月10日の限定的な実操作記録や、自社サイトの結果を新たに証明する図ではありません。

開発担当は、旧版を利用する画面が残っているかを、会社が認めた確認環境で調べます。旧版を表示する先に開いたタブと、後から開いたタブを区別し、それぞれの画面版と通信担当を確認します。業務中の画面では、入力を保全できるまで、原因確認のためにタブを閉じる操作を先に求めません。

同じService WorkerのURLに新しい内容を配信しても、旧版が担当するタブへ直ちに適用されるとは限りません。開発担当が更新確認を要求した後は、waiting・active・controllerと各タブの画面版を読み直します。update()の要求が終わったことと、待機中の新版がそのタブを担当したことは別に確認します。

教材の期待はwaiting B、active A、controller A、画面Aです。編集側は2026年10月10日、専用127.0.0.1の教材をCodexのブラウザで操作し、この交代待ちを実際に読みました。次の第5章で操作ごとの結果を示します。初回の制御確認やBの導入が違えば、その段階の実値とエラーを保存してください。今回の記録は自社サイトの結果を代わりにするものではありません。

教材の操作と期待する確認点
操作確認点
Aで登録→通常再読み込みactive Aとcontroller Aを実読
Aの先に開いたタブと後から開いたタブを開いたままB配信配信B/画面Aを別欄で読む
先に開いたタブからupdateを要求導入成功後のwaiting Bを確認
通常再読み込みだけを試すBへ必ず交代するとは扱わない
ここからできること

画面版・配信版・waiting・active・controllerのうち、最初に食い違った状態を開発担当と確認してください。

この章の根拠:出典4出典5出典9出典12

04 / Webサイト・SEO

未送信の受注メモを消さずに、B版へ切り替えるには?

入力の保存を確認し、旧Workerを使う対象タブを閉じるか範囲外へ移動した後、新しいタブの版と担当を照合します。

未送信のメモの元内容と保存した内容を照合してから、旧版を使う2つのタブを整理し、再開後の画面と担当を実読する。Bは教材の期待で、自社の結果は未確認。
保存内容の照合と、再開後の切替結果の確認を分けます。教材で期待するBを、自社の確認済み結果や送信完了へ置き換えません。

営業担当は、元のメモと保存先の実内容を照合し、未送信という状態を残してから対象タブを整理します。再開後は画面・active・controllerの実値と保存したメモを照合します。画面B・active B・controller Bは教材で確かめる期待であり、2タブを閉じた直後の切替や自社サイトの成功を保証しません。保存したメモの自動復元、取引先への送信・受領、業務再開の承認も別に確認します。

未送信の受注メモがあるタブは、保存内容を照合する前に閉じません。会社が決めた保存先で内容を実際に読み、元の画面の文章や入力項目と比べます。図4の「部品の見積メモ」も、保存を始めたという操作と、同じ内容が残ったという結果を分ける例です。一致しない、保存先を開けない、入力が欠けている場合は、タブを残したまま保存方法を確認します。保存できたことは、取引先へ送信・受領されたこととは別です。

作業を残した後、先に開いたタブだけでなく同じ登録の旧Workerを使う後から開いたタブなども終了するか、担当範囲の外へ移動します。scopeはWorkerがページを担当するURL範囲です。通常の再読み込みでは旧ページと新ページが重なるため、待機が解消しないことがあります。他の開いた画面や処理中のイベントも関係するので、『2タブを閉じた直後に必ずB』とは約束しません。

対象画面を開き直し、画面版・active・controllerの版と、保存したメモを照合します。教材で/lesson/を開き直したときの期待は画面B・active B・controller Bですが、自社では実際の対象URLとリリース識別を使います。画面だけBで担当がA、または担当だけBで画面がAなら、切替完了とせず新旧の組合せを開発担当が調べます。版がそろっても入力が欠けていれば業務再開を保留します。未送信のメモを取引先へ再送してよいかは、元の送信・受領状態を確かめてから業務責任者が判断します。

タブ終了前後に残す切替記録
段階確認する実物
終了前メモの内容・未送信・保存先の照合
対象整理先に開いたタブと後から開いたタブなど旧Worker利用中の画面
再開後画面B/active B/controller B
業務再開保存内容と送信・受領の別確認
ここからできること

未保存の作業と対象タブを記し、保存確認後の切替結果を残してください。

この章の根拠:出典4出典6出典13

05 / Webサイト・SEO

B版へ切り替わらない時、どの担当が何を調べる?

導入失敗、待機の継続、画面と担当の不一致を分け、原因に関係する箇所だけ開発担当が確認します。

B配信でwaitingなし、waiting Bとcontroller A、controller Bと画面A、メモの保存不明の4症状を、調べる実物と担当へ対応づける。原因と再開の可否は未確認。
症状ごとに確認する資料と担当を分けます。矢印は確認先であり、原因の確定や一括削除の指示ではありません。

B配信でwaitingがなければ開発担当が同じSW URLの内容と導入エラーを、waiting Bとcontroller Aなら残る制御対象と処理中イベントを調べます。controller Bと画面Aなら開発担当と更新担当が旧画面・新しい担当の組合せを確認します。メモの保存が不明なら営業担当と業務責任者が保存先、原内容、送信状態を照合します。症状だけで原因を確定せず、全キャッシュ消去などを一括で実行したり、確認前に業務再開を決めたりしません。

waitingが空でもactiveとcontrollerがBなら、待機を終えた可能性があります。画面版と保存内容を先に照合し、waitingを作るためだけに更新を繰り返しません。activeがAのままなら、Bのスクリプトの実内容、登録のscopeとURL、導入時の通信・構文エラーを調べます。導入が失敗して旧Workerが残っている場合は、そのエラーを直してから同じ条件で更新確認をやり直します。教材のserver-phase Bという配信側の値だけで、SW Bの導入成功とは判定しません。

waiting Bが残るなら、Aを使う別タブやアプリのウィンドウ、処理中のイベントを開発担当が調べます。controller Bなのに画面Aの場合は、交代を急ぐ設定による混在や、別の応答経路も確認対象です。skipWaitingは待機を省く要求ですが、読み込まれた古いHTMLまで自動で新しい文書へ書き換える命令ではありません。採用するなら、旧画面から新しいWorkerへの通信や未保存入力を別途試験します。

キャッシュをすべて消す、登録を外す、配信版をAへ戻す、といった処置をまとめて実行すると、原因や影響が追いにくくなります。まず観察JSON、エラー、リリース資材を保存し、開発担当が対象の登録・資材を限定します。サーバーをAへ戻しただけで、既に動くBのタブが即座にAへ戻るとも限りません。戻す場合も同じ版・担当・入力の照合を行います。

比較表は横に動かして全ての列を確認できます。

編集側のローカル実操作結果(2026-10-10)
実操作画面版waiting/active/controller
初回Aを開くAなし/A/なし
通常再読み込み後、Aの2タブAなし/A/A
B配信+更新確認、旧2タブを残すAB/A/A
メモを保存確認、旧Aが1タブ残るAB/A/A
旧2タブを閉じ、新しいタブを開くBなし/B/B

比較表は横に動かして全ての列を確認できます。

症状別の確認先
症状確認する箇所次の対処と担当
B配信/waitingなしactive・controllerの版、SWの実内容・導入エラー両方Bなら画面と入力を照合。Aなら開発担当が配信・導入を調べ、確認したエラーを直す。
waiting B/controller A残る制御対象・処理中イベント保存確認後に旧版の利用画面を整理する。開発担当は残る利用対象を調べ、未保存の入力があれば切替を急がない。
controller B/画面A急ぐ交代設定・旧新の組合せ開発担当と更新担当が旧画面・新担当の互換性を調べる。組合せを確かめるまで業務再開を保留する。
メモの保存が不明保存先と原内容・送信状態営業担当は内容が一致するまでタブを閉じない。業務責任者は元の送信・受領を確かめ、再送や再開を判断する。
ここからできること

最初に一致しない状態を特定し、新版の導入、待機中の旧版利用、画面と通信担当の組合せのどこを調べるか決めてください。

この章の根拠:出典5出典6出典7出典8

06 / Webサイト・SEO

まとめ:入力を残し、画面と通信担当が切り替わったか確かめる

配信版と表示版を分け、未保存の作業を保全してから切替後の状態を確かめます。

切替前の配信・画面・担当を記録し、メモの保存内容を照合してから、再開後の画面と担当を確かめる手順。自社の切替成功や送信完了は未確認。
入力の保全と、再開後の版の確認を別の仕事として示します。保存を業務上の送信や再開承認に読み替えません。

切替前は配信版・画面版・waiting・active・controllerを分けて記録します。営業担当はメモの保存先の実内容を照合し、未送信という状態を残します。その後に旧版を使う画面を整理し、再開後の画面版と担当を実際に確認します。記入例の期待値と、元教材の2026年10月10日の限定的な実操作記録は別です。実サイトの結果、取引先の受領、業務再開の承認は未確認のまま扱います。

新版の配信だけでは、朝から開いていた画面まで新版になるとは限りません。まず今のページを担当するWorkerと登録の状態を分けて読みます。waitingが空でも、activeとcontrollerが新版なら交代済みの候補です。登録がなければ、Service Workerの切替操作へ進まず配信先など別の原因を調べます。

営業担当はメモを保存先の実内容と照合し、未送信という業務状態を残します。その後、旧Workerを使う画面を整理し、新しいタブの版・担当を確認します。切替を急ぐ機能を導入する場合にも、旧画面と新しいWorkerの組合せ、入力保護、戻す方法を試験してから業務責任者が採用範囲を決めます。

今日まず行うのは、古い画面1件の未送信入力を残し、そのページの担当と配信版を照合することです。保存内容が一致するまではタブを閉じず、切替後は画面・通信担当・入力をそろえて確認します。どれかが一致しなければ、その状態に対応する第5章の対処へ戻ります。読取りエラーを「なし」にしたり、教材のBを自社の成功へ置き換えたりしません。

ここからできること

対象画面1件で、入力が残っていることと切替後の画面・通信担当を確かめ、未確認が残る場合は業務再開の範囲を担当者と決めてください。

この章の根拠:出典1出典2出典3出典4

仕事の流れから、顧客との接点まで。
一体で見直す、最初の一歩を。

AI・DXとマーケティングを一体で相談

KEEP EXPLORING

次のヒントを、もうひとつ。

すべての記事を見る

LET’S CONNECT THE DOTS.

次の一歩を、
一緒につくる。

業務も、AIも、集客も。
課題がまだ整理できていなくても、ご相談ください。

AI・DXとマーケティングを一体で相談