Обнаружил интересную фичу - подписку на события с указанием passsive: true
, что должно позволить браузеру оптимизировать стандратные действия, т. к. мы таким образом обещаем не отменять их.
С точки зрения логики это дополнительная плюшка, которая не должна ничего портить в случае, если браузер её не поддерживает. Но есть одно жирное НО.
В классическом варианте подписка осуществлялась одним из этих способов:
target.addEventListener(type, listener);
target.addEventListener(type, listener, useCapture);
Теперь же надо в третий параметр запихнуть объект:
target.addEventListener(type, listener, {useCapture, passive, once});
Тут есть ещё и once, у которого поддержка ещё хуже.
Какие проблемы могут возникнуть, если передать объект в качестве последнего параметра, когда браузер не поддерживает passive?
Следующий код в IE11 выдаёт 1, т. е. capturing, а в хроме 3 - bubbling. Логично ли рассчитывать, что объект будет рассматриваться как true, что означает, что если я подписываюсь на capturing-стадию и не использую once
, то всё будет работать одинаково?
Или есть другие варианты, например исключение?
https://jsfiddle.net/5o88hq7u/1/
document.querySelector('div').addEventListener(
'click',
function(e) { alert(e.eventPhase) },
{ passive: true }
);
<div><button>Click me</button></div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть код, он из селекта отправляет текст в js, из js в php для обработки и из php обратно в jsКак мне вывести в form-control текст, полученный из php
При наведении указателя мыши объект появляется, при отведении указателя мыши объект удаляетсяПрименил функцию off чтобы, при нажатии объект...
Хочу спросить ваше мнение, у меня есть 2 сущности: Роуты