Вход

Просмотр полной версии : Как будет правильнее и быстрее?


Glook
02.11.2010, 17:37
Как правильно писать так:


$(function () {
тут одна функция
});

$(function () {
тут вторая функция
});

$(function () {
тут третья функция
});


или так:


$(function () {
тут ВСЕ функции для ВСЕГО сайта
});


И как это влияет на скорость обработки браузером?

exec
02.11.2010, 18:04
Второй вариант лучше, т.к. навешивается всего один обработчик DOMContentLoaded на document.

micscr
02.11.2010, 18:12
это что - функция ready так уже записывается?

Glook
02.11.2010, 18:24
это что - функция ready так уже записывается?
ну, вроде да. она, кажется, всегда так записывалась, краткий вариант.

Glook
02.11.2010, 19:00
А ещё вопрос: есть ли какой-нибудь вариант более быстрого срабатывания функции? ДО полной загрузки DOM.

micscr
02.11.2010, 19:16
смотря что делает эта функция. Если не обращается к элементам DOM, то просто вначале скрипта вызывай ее:
<head>
<script>
xxx();
function xxx(){
//...
}
</script>
</head>

Kolyaj
03.11.2010, 08:30
Как правильно писать
Без разницы.

есть ли какой-нибудь вариант более быстрого срабатывания функции?
Ну вызови её.

Glook
08.11.2010, 16:05
смотря что делает эта функция. Если не обращается к элементам DOM, то просто вначале скрипта вызывай ее:


к элементам DOM конечно обращается. просто проблема в том, что страница "тяжёлая", какие-то элементы добавляются динамично, поэтому полная загрузка её занимает какое-то время. однако некоторые элементы загружаются быстрее, вот с ними-то и хотелось бы взаимодействовать как только они загрузятся. не ждать остальных.

Bercut
12.11.2010, 01:47
достаточно разместить скрипт после того элемента с которым предстоит взаимодействовать

Bercut
12.11.2010, 01:51
касательно "Как правильно писать"
всё зависит от содержимого вашей страницы, если есть необходимость разбросать скрипты по странице, то ради бога используйте $(function (){}) сколь угодно раз
а если такой необходимости нет, то вам самому будет удобнее держать всё в одном месте
на производительности это отражается незначительно, если счёт не идёт на тысячи