2009-07-18 7 views
44

Плохо ли иметь на своем сайте несколько $(document).ready(function() {});. У меня есть веб-сайт, где я загружаю разные вещи в разное время. Я увольняю эти частичные функции обратной передачи внутри $(document).ready(), но у меня около 4 или 5 на странице сразу. Это плохая практика? В частности, это вызовет проблемы с производительностью?

ответ

32

Этот ответ больше не уместен. См. Другие сообщения ниже для более актуальных эффектов jQuery $ .ready(). Эта должность старше 3 лет.

См: http://jsperf.com/docready/11

Ответ: нет! Вы можете засорять их столько, сколько хотите (обратите внимание на то, что сломанный мусор ). Они просто становятся очередью событий, вызываемых при запуске события .

http://www.learningjquery.com/2006/09/multiple-document-ready

1

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

Я сомневаюсь, что последствия для работы являются значительными. Вы пробовали сопоставлять страницу с ними все вместе и обособленно?

3

Нет ничего страшного в том, чтобы иметь столько, сколько вы хотите. Более короткий, гораздо более элегантный способ сделать это - $(function(){}).

11

Ответ на самом деле «Да, это отпугивает производительность»:

http://jsperf.com/docready/3

+4

Вы делать выводы, основанные на ваше мнение. Ответ заключается в том, что есть хиты производительности (у всех есть хиты производительности), и этот удар следует сопоставить с преимуществами этого. Даже с IE8 потребовалось бы 20K $ .ready, чтобы замедлить мою страницу на 1 секунду. 50 - 100, которые я использую, приведут к увеличению примерно на 0,0025 секунды на IE или 0,000125 секунд на Chrome. – umassthrower