оброботка события load
Доброе время суток!
Подскажите как оброботать событие load не помешая в <body> или еще куда либо, только по средством JS? P.S. Только заумные скрипты и фразы не кидать. Я только начал учить JS. Заранее благадарен clgs. |
clgs, самый простой вариант:
window.onload = function() { // code here }; Однако, этот код уничтожит старый onload, если он был (например, прописанный в теге body), поэтому обычно запоминают старый onload, а в своей функции вызывают этот старый onload и затем уже свой код. P.S.: сегодня уже давно обрабатывают onDOMContentLoaded (событие наступает, когда построенно дерево DOM; порой, намного раньше, чем onload, т.к. onload наступит, когда вся страница (включая большие изображения) бедет загружена) и его эмуляции для браузеров, которые пока не поддерживают это событие. |
function addEvent(e,t,f){ if (e.addEventListener) e.addEventListener(t, f, false); else if (e.attachEvent) e.attachEvent('on'+t, f) } function removeEvent(e,t,f){ if (e.removeEventListener) e.removeEventListener(t, f, false); else if (e.detachEvent) e.detachEvent('on'+t, f) } addEvent(window, 'load', any_func); removeEvent(window, 'load', any_func); |
ZoNT, тогда уж оптимизировать до конца. Какой смысл каждый раз проверять, какую обработку юзать - "add..." или "attach..."? Лучше проверить это один раз при инициализации и создать свою функцию, в зависимости от браузера.
|
флаг в руки! Только это будет вешаться один раз и оптимизаия выйдет ненужная. При оптимизации по скорости ухудшится ситуация по размеру. Надо смотреть, что требуется. Если требуется один раз повесить обработчик и оди раз снять, то надо уменьшать объём. Если надо 20 раз в секунду рвешать/снимать обработчики ( :D ), тогда заводи быстродействующие браузерозависимые функции.
|
ZoNT, че-т я не верю, что универсальная функция добавления/удаления слушателя (где window - это такой же слушатель) у тебя используется в коде меньше, чем 10 раз :D Я всего лишь привел информацию; оптимизировать или нет - твое право =)
Цитата:
|
у меня она оптимизированна. По размеру. Так как по времени она вызывается НЕ ПОДРЯД (!!!) 10 раз, то и тормозов никогда не будет.
|
гм... Вообще, если честно, то нашёл где используется максимум по два раза добавление/удаление...
|
Цитата:
Цитата:
|
ну, 1мс*10 = 10мс. Мне не жалко 10мс на весь просмотр страницы, так как погрешности загрузки страницы больше 10мс.
Ха-ха-ха. Файл подгрузился и всё. А если стоит антикэш и файл отдаётся более чем миллиард раз в сутки??? 100байт*1000 000 000 = 93 гига трафика в сутки! |
Часовой пояс GMT +3, время: 08:45. |