Подтвердить что ты не робот

Последствия наличия нескольких функций $(document).ready в нескольких файлах js

Возможный дубликат:
JQuery - multiple $(document).ready … ?

Каковы последствия наличия нескольких файлов javascript, каждый со своей собственной функцией $(document).ready?

4b9b3361

Ответ 1

При наличии нескольких элементов с $(document).ready(); события будут удалены в том порядке, в котором они были связаны. Нет никаких реальных негативных последствий для этого, но имейте в виду, что любые переменные, определенные в одном из этих методов , теряют область и не будут доступны в других событиях.

Чтобы обойти проблемы, связанные с javascript, просто определите переменные кросс-события вне блоков $(document).ready();.

Ответ 2

Все функции будут выполняться в том порядке, в котором они были связаны. См. Документацию по jQuery:

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

(http://api.jquery.com/bind/)

Итак, все функции выполняются, и вы можете влиять на порядок их выполнения. Тем не менее, я бы настоятельно советовал не основывать какую-либо логику в порядке выполнения, так как это может быть довольно хрупким.

Ответ 3

ничего. Все они будут прикреплять листер, который будет выполнен, когда документ будет готов. Только импликация afaik заключается в том, что они будут исполняться в том порядке, в котором они были прикреплены.

Ответ 4

Вся эта функция добавляет обработчик события к событию onload для документа, поэтому, делая это, вы просто делаете Javascript более чем одним при завершении загрузки страницы.

Нет недостатков в производительности. Однако, если у вас все это происходит на pageload, вы можете захотеть иметь один файл init.js(или что-то подобное), который вызывает все остальные функции в pageload. Таким образом, все это в одном месте и легче управлять.

Однако, удобство чтения и управления, это прекрасно.