Size: a a a

JavaScript Noobs — сообщество новичков

2020 July 17

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Нужно было 1000 страниц как можно быстрее
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
По 20 параллельно тип
источник

А

Александр in JavaScript Noobs — сообщество новичков
А жс разве может в параллельность? Мне казалось, что там просто 1 поток, который с прерываниями работает.
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Ожидание сетевых запросов не жс разруливает
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
А с++
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
При вызове fetch у браузера ты даёшь команду браузеру сделать запрос
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Он тебе лишь после запроса твою функцию колбек закинет куда надо и ты ее выполнишь
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
У браузера 6 запросов параллельно можно, но на бэке там сколько хочешь, вроде
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Жс асинхронный
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Но браузер так же даёт тебе воркеры, чтобы ты мог запускать паралельно другой процесс
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
В ноде они тоже есть, кластеры
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Но сам жс однопоточный
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Александр
А жс разве может в параллельность? Мне казалось, что там просто 1 поток, который с прерываниями работает.
Не с прерываниями
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Задача 1
Задача 2
Задача 3

У тебя есть список задач. Они делятся на 2 списка

Микро задачи
Макро задачи

Каждую представь как очередь. В ней лежит колбек, к примеру от успешного запроса или ивент листенера

Браузер выполняет 1 задачу из микро задач, потом 2 и 3. Пока список не опустеет

После этого он рендерит, показывает юзеру актуальное состояние

Далее заходит в макро задачи. Берет одну задачу из очереди и снова к 1 пункту. Макро выполняется один за цикл
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Если твоя задача будет очень тяжёлая, то ты заблокируешь рендер
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
У пользователя зависнет страница.

Варианты решения: вынести задачу в воркер или поделить задачу путем тайм-аута/raf. Тайм-аут это макротаск создаёт и получается ты за один цикл лишь долю задачи делаешь и потом снова рендер
источник

V

Vlad in JavaScript Noobs — сообщество новичков
Ебать
источник

V

Vlad in JavaScript Noobs — сообщество новичков
Целый мануал
источник

F

Foma in JavaScript Noobs — сообщество новичков
как с собеса пришел
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
setTimeout (task1, 0)
Promise.resolve().then(task2)
Promise.resolve().then(task3)

setTimeout (task4, 0)
источник