Фоновые сервисные рабочие потоки
Научитесь управлять событиями, постоянной логикой и жизненным циклом расширения с помощью фоновых сервисных рабочих потоков.
«Фоновые сервисные рабочие потоки» — бесплатный урок Browser Extensions Development (Chrome & Edge) на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Browser Extensions Development (Chrome & Edge), и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Browser Extensions Development (Chrome & Edge) содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Extension's Brain: Service Workers
Welcome to the core of your Manifest V3 extension: Background Service Workers! Think of them as the silent brain of your extension.
They're responsible for listening to browser events, managing persistent logic, and ensuring your extension runs efficiently without constantly consuming resources.
MV3: Why Service Workers?
In Manifest V2, extensions often used 'persistent background pages' that ran constantly. Manifest V3 introduced service workers as a more modern, energy-efficient alternative.
- Event-Driven: They only wake up when an event occurs.
- Temporary: They go idle and terminate when not needed.
- Energy-Saving: This 'sleep-wake' cycle saves battery and memory.
Declaring Your Service Worker
To use a service worker, you must declare it in your manifest.json file. This tells the browser which JavaScript file acts as your background script.
It's specified under the 'background' key, pointing to your service worker script.
{
"manifest_version": 3,
"name": "My Service Worker Extension",
"version": "1.0",
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_popup": "popup.html"
}
}Service Worker Lifecycle
Unlike a traditional always-on program, a service worker has a dynamic lifecycle:
- It activates when an event it's listening for occurs.
- It runs its associated tasks.
- After a period of inactivity (usually a few seconds), it goes idle and eventually terminates.
It will reactivate the next time an event triggers it.
Listening for Events
Service workers primarily function by listening for browser events using the chrome API. When an event fires, your worker code springs into action!
Common events include:
chrome.runtime.onInstalled: When the extension is installed or updated.chrome.action.onClicked: When the extension's toolbar icon is clicked.
Event: On Extension Installed
Let's write a simple service worker that logs a message when your extension is first installed or updated. This is a great place for one-time setup tasks.
Create a file named service-worker.js:
// service-worker.js
chrome.runtime.onInstalled.addListener(() => {
console.log('CoddyKit Extension installed or updated!');
// You could set default preferences here
chrome.storage.sync.set({ 'theme': 'light' });
});Event: On Extension Icon Click
Another common event is when the user clicks your extension's icon in the browser toolbar. You can make your service worker respond to this interaction, for example, by opening a new tab.
// service-worker.js
chrome.action.onClicked.addListener((tab) => {
console.log('Extension icon clicked! Current tab ID:', tab.id);
// Open a new tab to a specific URL
chrome.tabs.create({ url: 'https://www.google.com/search?q=CoddyKit' });
});Debugging Your Service Worker
To see your console.log messages and debug your service worker, you'll use the browser's Developer Tools.
In Chrome/Edge, go to chrome://extensions, enable 'Developer mode', find your extension, and click the 'service worker' link to open its dedicated DevTools window.
Quick Check: Service Worker Role
What is a key characteristic of Manifest V3 background service workers compared to Manifest V2 background pages?
Recap: Background Service Workers
Great job! You've learned about the fundamental role of Background Service Workers in Manifest V3 extensions:
- They are the event-driven 'brains' of your extension.
- They are declared in
manifest.json. - They have a temporary lifecycle, waking for events and then terminating.
- You use event listeners (e.g.,
chrome.runtime.onInstalled,chrome.action.onClicked) to make them react to browser events.
Next, we'll dive into how permissions control what your extension can do!
Часто задаваемые вопросы
Урок «Фоновые сервисные рабочие потоки» бесплатный?
Да — полный текст урока «Фоновые сервисные рабочие потоки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Browser Extensions Development (Chrome & Edge), подпишись на CoddyKit PRO. Курс Browser Extensions Development (Chrome & Edge) содержит 4 уроков всего.
Чему я научусь в уроке «Фоновые сервисные рабочие потоки»?
Научитесь управлять событиями, постоянной логикой и жизненным циклом расширения с помощью фоновых сервисных рабочих потоков. Ты практикуешь Browser Extensions Development (Chrome & Edge) с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Browser Extensions Development (Chrome & Edge)?
Предыдущий опыт не требуется. Browser Extensions Development (Chrome & Edge) на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Фоновые сервисные рабочие потоки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Browser Extensions Development (Chrome & Edge)?
Да. Каждый урок Browser Extensions Development (Chrome & Edge) включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Изучение структуры Manifest V3
- Фоновые сервисные рабочие потоки
- Разрешения и сопоставление узлов
- Действие, значки и кнопка на панели инструментов