New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавляет статью про Web Workers #5190
Conversation
Привет! |
@ByMarsel а докинь еще себя, пожалуйста в папочку People прямо в этом PR. Примерно вот так: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я посмотрела только кусочек. Оставила немножко комментов. Чуть позже принесу еще :)
Очень крутая статья. Спасибо тебе большое 💪
js/web-workers/index.md
Outdated
|
||
## Что такое Web Worker? | ||
|
||
Web Worker — это функциональность JavaScript, которая позволяет выполнять скрипты в фоновом режиме параллельно с основным потоком выполнения, не блокируя его и не влияя на производительность пользовательского интерфейса. Это дает возможность выполнять сложные вычисления или обработку данных без замедления отзывчивости веб-страницы. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Может как-то так?)
Web Worker — это функциональность JavaScript, которая позволяет выполнять скрипты в фоновом режиме параллельно с основным потоком выполнения, не блокируя его и не влияя на производительность пользовательского интерфейса. Это дает возможность выполнять сложные вычисления или обработку данных без замедления отзывчивости веб-страницы. | |
WebWorker — это функциональность JavaScript, которая позволяет выполнять код вне основного потока, не блокируя его. Долгие или сложные вычисления на WebWorkers не блокируют пользовательский интерфейс. |
js/web-workers/index.md
Outdated
|
||
Web Worker — это функциональность JavaScript, которая позволяет выполнять скрипты в фоновом режиме параллельно с основным потоком выполнения, не блокируя его и не влияя на производительность пользовательского интерфейса. Это дает возможность выполнять сложные вычисления или обработку данных без замедления отзывчивости веб-страницы. | ||
|
||
По сути, это скрипт js, который запускается в отдельном потоке браузера и выполняет код параллельно основному потоку браузера. К тому же Web Workers имеют свой собственный контекст, отличный от window. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот тут надо очень аккуратно. WebWorker (в хроме) выполняется в отдельном isolate https://v8docs.nodesource.com/node-0.8/d5/dda/classv8_1_1_isolate.html. Это отдельный экземпляр JS движка. Это чуть хитрее чем отдельный поток
Давай как-то попробуем это донести? )
js/web-workers/index.md
Outdated
|
||
По сути, это скрипт js, который запускается в отдельном потоке браузера и выполняет код параллельно основному потоку браузера. К тому же Web Workers имеют свой собственный контекст, отличный от window. | ||
|
||
Что скрывается под фразой “собственный контекст”? Если упростить, то внутри Web Workers недоступны **`window`**, **`document`** или **`parent`** объекты, то есть нам недоступно управление DOM. По крайней мере, напрямую, но ничто не мешает нам манипулировать DOM косвенно, например, через отправку команд в window-поток с помощью `postMessage`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот что-то такое :)
Что скрывается под фразой “собственный контекст”? Если упростить, то внутри Web Workers недоступны **`window`**, **`document`** или **`parent`** объекты, то есть нам недоступно управление DOM. По крайней мере, напрямую, но ничто не мешает нам манипулировать DOM косвенно, например, через отправку команд в window-поток с помощью `postMessage`. | |
Разберёмся что означает “собственный контекст”? Контекст выполнения WebWorkers [WorkerGlobalScope](https://html.spec.whatwg.org/multipage/workers.html#workerglobalscope), отличается от контекста выполнения для обычного потока. В нем недоступны объекты window и document и DOM API. Чтобы управлять DOM можно использовать другой механизм – отправку команд в основной поток через `postMessage` |
js/web-workers/index.md
Outdated
const worker = new Worker('worker.js'); | ||
``` | ||
|
||
Давайте теперь разберёмся, как нам связать главный поток браузера и поток Worker. Они общаются между собой с помощью сообщений: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно использовать термин поток выполнения... мб будет чуть-чуть понятнее.
js/web-workers/index.md
Outdated
worker.postMessage({ message: '415тый, я база, ответьте' }); | ||
``` | ||
|
||
Далее в Web Worker с помощью свойства onmessage, которое находится в глобальном контексте Worker или другими словами `self`, мы записываем туда наш обработчик сообщений из вышестоящего контекста. Обратите внимание, что postMessage или self.postMessage мы можем вызвать из любого места нашего Worker. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы написала про self где-то в начале, там где мы говорим про глобальный поток
Супер! Я чуть подредачу и помержим. |
У меня фундаментальный вопрос: а можем транслит использовать и называть их веб-воркеры/воркеры везде? Насколько это устоявшийся термин? Или это как с API или, не знаю, user agent, которые в переводе ну такое. |
О! Я задавалась тем же самым вопросом при редактировании. У меня даже был вариант "веб работники" :) |
Вообще я не против, но мне кажется что Web Worker гуглится очень хорошо, в сравнении с Веб Воркер и тем более Веб работник. Что думаете? Я голосую за вариант Web Worker. |
Пусть будут воркеры :) Поехали 🚀 |
Превью контента из f4e356a опубликовано. |
Описание
Closes Статья "Использование Web Workers"
Чек-лист
/css/color/
,/tools/json/
,/tools/gulp/#kak-ponyat
)images/example.png
,demos/example/
,../demos/example/
)