По сути, NexDock – это ноутбук без чипсета, системы охлаждения и прочих комплектующих. Вместо них в ...
Доброго времени суток,
%username%
! Маленькое исследование на тему «какой же способ поставить функцию/метод на обработку в очередь эффективнее» и, как результат, сравнительный тест, и итоговая реализация схожей с
setImmediate
функции. Этот метод нужен тем, кто хочет разбивать выполнение скрипта, чтобы тот не «подвешивал» браузер, что бывает полезно при огромном скрипте инициализации, разборе большого массива данных, построения сложной структуры не прибегая к WebWorkers.
Для понимания:
setImmediate
это метод объекта
window
, который должен вызвать функцию, переданную в неё, асинхронно, эдакий
setTimeout(fn, 0)
, где 0 реально 0, а не минимум 4. Для nodejs-программистов это
process.nextTick
. Т.к. сам метод (setImmediate) имеет чёткий стандарт с ошибками и дополнительными параметрами, рассмотрим абстрактную задачу
асинхронного выполнения переданной функции/метода как можно быстрее.
Исследования исключительно в рамках сценариев браузера, при чём основных, т.к. в работниках (workers) не совсем понятно зачем такое дробление, хотя если нужно, можно попробовать обещания и сообщения.
Итак, давайте узнаем, что же лучше подходит: postMessage, MutationObserver или Promise?
Познаём