Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как узнать имеется ли обработчик события (https://javascript.ru/forum/events/7721-kak-uznat-imeetsya-li-obrabotchik-sobytiya.html)

HelpeR 16.02.2010 16:40

как узнать имеется ли обработчик события
 
Если к какому нибудь элементу страницы добавить обработчик события
addEvent : function(obj, evnt, func) {
	    if(obj.attachEvent) {
		    obj.attachEvent('on' + evnt, func);	
		}
		else if(obj.addEventListener) {
		    obj.addEventListener(evnt, func, false);
		}
		else {
		    obj['on' + evnt] = func;
		}
	},

То как можно в дальнейшем узнать (получить, прочитать) имеет ли этот объект какой либо обработчик события. getAttribute выдает null obj.onclick тоже выдает undefined

Kolyaj 16.02.2010 16:42

В общем случае никак. Фреймворки, как правило, кэшируют у себя эту информацию.

HelpeR 16.02.2010 16:43

да я тоже только что узнал, что в спецификации DOM 3 существует объект eventListenerList, но он слишком новый и на данный момент не поддерживается ни одним из браузеров.

Octane 16.02.2010 19:39

Цитата:

Сообщение от HelpeR
в спецификации DOM 3 существует объект eventListenerList, но он слишком новый и на данный момент не поддерживается ни одним из браузеров

Вроде в Firefox 3.7 будет)

HelpeR 16.02.2010 19:41

тогда было бы замечательно, если после появления ff 3.7 использование этого браузера в мире было бы 100% )))

PeaceCoder 16.02.2010 20:02

Цитата:

Сообщение от HelpeR
тогда было бы замечательно, если после появления ff 3.7 использование этого браузера в мире было бы 100% )))

ага и если бы FF имел движок Chrome было бы вообще отпад. самый пярмой и быстрый браузер это мечта вебпрограммера

e1f 16.02.2010 20:16

Движок Chrome - Webkit. FF на движке Вебкита? Ну, не знаю-не знаю :)

Kolyaj 16.02.2010 21:13

Цитата:

Сообщение от PeaceCoder
ага и если бы FF имел движок Chrome было бы вообще отпад.

У Firefox движок рендеринга -- Gecko, js-движок -- TraceMonkey. У Chrome движок рендеринга -- Webkit, js-движок -- V8. Так о каких движка идёт речь?

HelpeR 16.02.2010 21:21

Один из главных козырей Chrome - его скорость. Помимо того, что в нём используется WebKit - один из самых быстрых (если не самый) движок, рисующий страницы, так Google добавили к нему ещё и своё собственное изобретение - V8 - виртуальную машину для JavaScript, которая позволяет в разы ускорить исполнение программного кода. Это особенно важно для различных веб-сервисов, которые практически не используют статичный HTML и постоянно подгружают данные с сервера при помощи AJAX.

В V8 реализованы разные подходы, которые позволяют ускорить исполнение JavaScript. Здесь используется улучшенный сборщик мусора - механизм, позволяющий высвобождать неиспользуемую программами память, а также компилятор, на ходу превращающий сценарии в машинный код конкретного процессора. Но главное преимущество Chrome заключается в многопроцессности.

Обычно браузеру приходится ждать, пока все сценарии будут запущены и, возможно, завершат свою работу, прежде чем страница может быть отображена целиком. Chrome же умеет параллельно исполнять сценарии и заниматься обработкой кода страницы. На практике результаты оказываются фантастическими - кажется, что сложные страницы открываются так, будто это простой текст.

Думаю об обоих движках ))

subzey 17.02.2010 18:20

Цитата:

Сообщение от HelpeR
Обычно браузеру приходится ждать, пока все сценарии будут запущены и, возможно, завершат свою работу, прежде чем страница может быть отображена целиком.

Браузеры на базе Presto не обычные, лол?


Часовой пояс GMT +3, время: 07:02.