Pull to refresh
7
0
Serg Louter @Louter

User

Send message

Реализации setImmediate: сообщения, мутация или обещания, что быстрее?

Reading time6 min
Views11K


Доброго времени суток, %username%! Маленькое исследование на тему «какой же способ поставить функцию/метод на обработку в очередь эффективнее» и, как результат, сравнительный тест, и итоговая реализация схожей с setImmediate функции. Этот метод нужен тем, кто хочет разбивать выполнение скрипта, чтобы тот не «подвешивал» браузер, что бывает полезно при огромном скрипте инициализации, разборе большого массива данных, построения сложной структуры не прибегая к WebWorkers.

Для понимания: setImmediate это метод объекта window, который должен вызвать функцию, переданную в неё, асинхронно, эдакий setTimeout(fn, 0), где 0 реально 0, а не минимум 4. Для nodejs-программистов это process.nextTick. Т.к. сам метод (setImmediate) имеет чёткий стандарт с ошибками и дополнительными параметрами, рассмотрим абстрактную задачу асинхронного выполнения переданной функции/метода как можно быстрее.

Исследования исключительно в рамках сценариев браузера, при чём основных, т.к. в работниках (workers) не совсем понятно зачем такое дробление, хотя если нужно, можно попробовать обещания и сообщения.

Итак, давайте узнаем, что же лучше подходит: postMessage, MutationObserver или Promise?
Познаём
Total votes 13: ↑12 and ↓1+11
Comments9

IO.js или старые грабли под новым соусом

Reading time2 min
Views12K


«Свершилось! Node.js получило развитие в виде форка io.js! Привет ES6! Привет новый V8!» радовались разработчики. Полез смотреть с надеждой, что вот сейчас, начав с нуля, ребята исправили фундаментальные косяки!

Какие фундаментальные ошибки допущены и почему без их исправления промышленный масштаб является спорным или попросту недостижимым. Это не статья-страшилка, как её можно понять, это просьба о помощи, т.к. нода показательно застопорилась, и надежда только в данном проекте.
По пунктам
Total votes 38: ↑21 and ↓17+4
Comments29

GamepadAPI или джойстик в браузере

Reading time8 min
Views24K

Здравствуй, Хабр!





Смотря, как всё более новые и новые технологии внедряются в веб, смотря, как в него переносят игры, я задумался: «А было бы круто, если бы геймпад тоже можно было подключить...». И в поиске первым же результатом было GamepadAPI.
Немного ниже ссылка на W3C GamepadAPI. Посмотрев, попробовав, я обнаружил ряд проблем, подводных камней, которые поставили бы крест на внедрении джойстиков в браузер. И я решил это исправить, создав интерфейс. Что есть «из коробки», и что именно было доработано, изменено и на мой взгляд улучшено, описано под катом.

Чтобы ходить по воде, надо знать, где подводные камни...
Total votes 28: ↑23 and ↓5+18
Comments20

FDroid как замена Google Play. Возможно ли и чем придётся жертвовать?

Reading time2 min
Views40K
FDroid logo

Здравствуй, Хабр!


Навеяно постом «Темная сторона Google Play».
Т.к. Android базируется на ядре Linux, то странно было бы отказываться от идеологии Linux, в частности от множества репозиториев. Но что меня удивило, так что об альтернативе Google Play знают не все, даже связанные с IT, люди.

Где-то полгода назад я принципиально отказался от услуг Google в пользу FDroid на одном из планшетов. И о результатах текущего эксперимента поведаю сообществу. О причинах, о плюсах, минусах под катом.
Читать дальше →
Total votes 38: ↑20 and ↓18+2
Comments20

Asm.js практика

Reading time6 min
Views34K
image
Этим прохладным днём я искал алгоритмы и реализации вычисления числа пи. Алгоритмов нашлось какое-то несметное множество, но тут нашёлся пост с описанием алгоритма и его реализацией на си.
Алгоритм подкупает своей скоростью, хоть и выдаёт hex представление, но так уж вышло, что мне нужен был вариант на js. Моментальная, практически, переработка на обычный js показала очень плохую статистику, работа при подсчёте 1000000-ого знака заняла… 48 секунд (4ГГц FF).
О том, как возился с asmjs и каких камней повстречал можно узнать под катом.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments43

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity