--- title: ServiceWorkerContainer.startMessages() slug: Web/API/ServiceWorkerContainer/startMessages tags: - API - Reference - Service Workers - ServiceWorkerContainer - startMessages translation_of: Web/API/ServiceWorkerContainer/startMessages ---
{{domxref("ServiceWorkerContainer")}} インターフェイスの startMessages()
メソッドは、サービスワーカーからその制御下にあるページにディスパッチされるメッセージの流れを明示的に開始します(例えば、{{domxref("Client.postMessage()")}} を介して送信されます)。 これは、ページのコンテンツの読み込みが完了する前であっても、送信されたメッセージに早く反応するために使用できます。
デフォルトでは、ページの読み込み中に、ページを制御するサービスワーカーから({{domxref("Client.postMessage()")}} を使用して)ページに送信されたすべてのメッセージはキューに入れられ、ページの HTML 文書が読み込まれて解析されると(つまり、{{event("DOMContentLoaded")}} イベント発生の後に)ディスパッチされます。 例えば、ページの読み込みが完了する前に {{domxref("EventTarget.addEventListener()")}} を使用してメッセージハンドラーを呼び出したが、すぐにメッセージの処理を開始したい場合は、{{domxref("ServiceWorkerContainer.startMessages()")}} を呼び出すことで、これらのメッセージのディスパッチを開始できます。
注: {{domxref("ServiceWorkerContainer.onmessage")}} を使用してハンドラーを直接設定すると、メッセージの送信が自動的に開始されます。 この場合、startMessages()
は必要ありません。
serviceWorkerContainer.startMessages();
なし。
undefined
。
if('serviceWorker' in navigator) { navigator.serviceWorker .register('/sw.js') .then(function() { console.log('サービスワーカーが登録された'); }); } // ... navigator.serviceWorker.addEventListener('message', (e) => { // ... }); navigator.serviceWorker.startMessages();
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('Service Workers', '#dom-serviceworkercontainer-startmessages', 'ServiceWorkerContainer: startMessages()')}} | {{Spec2('Service Workers')}} | 初期定義 |
{{Compat("api.ServiceWorkerContainer.startMessages")}}