ускорение нескольких событий onmouseover в IE - PullRequest
1 голос
/ 20 марта 2009

У меня есть веб-страница с множеством (до 100+) HTML-элементов. У каждого из них зарегистрировано событие onmouseover, которое запускается для выполнения некоторой логики и рендеринга в зависимости от того, над каким элементом наведен курсор.

Я обнаружил, что в IE больше событий onmouseover, которые регистрируются, тем дольше они увольняются. В Firefox скорость в порядке, а в Chrome еще быстрее!

Кто-нибудь знает решение этой проблемы? Я подумал, что, возможно, зарегистрировать одно событие onmousemove и попытаться извлечь элемент DOM из координат, но я не уверен, как это сделать, или это просто выдумка вокруг проблемы.

1 Ответ

2 голосов
/ 20 марта 2009

Прикрепите к телу событие onmouseover или mousemove (я думаю, что оба этих пузыря, не помню), и когда вы наводите курсор на свои фактические элементы, вы можете справиться с тем, что вам нужно сделать, так как он будет пузыриться до тела где вы можете справиться с элементом, который вы на самом деле коснулись. Вы можете использовать пользовательские атрибуты или свойства раскрытия этого элемента для обработки того, что вам нужно сделать при наведении курсора на определенный элемент.

Вы должны прикреплять события только так, как вам нужно, и отсоединять их, когда они вам больше не нужны. На тривиальных страницах это, вероятно, не требуется, но в сценарии, подобном вашему, это повысит производительность на стороне клиента. Мы делали подобные вещи, где я работал, когда у нас были тысячи элементов формы на странице.

Мои два цента, nickyt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...