Ожидание завершения JQuery для привязок .live () или .bind ()? - PullRequest
0 голосов
/ 12 августа 2010

У меня есть скрипт, который добавляет обработчики событий клика примерно к 500 элементам на странице через JQuery .live или .bind (еще не решено, какой), и у меня проблема с производительностью JQuery.

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

Есть ли способ заставить JQuery дождаться завершения .live (), прежде чем двигаться дальше, или, другими словами, обрабатывать его синхронно, а не асинхронно, если это имеет смысл? Поэтому я могу открыть экран загрузки перед началом вызова .live () и снять его, когда он будет завершен.

С уважением Moo

1 Ответ

0 голосов
/ 12 августа 2010

Обработчик jQuery .live() (или .delegate()) должен завершить очень быстро, в отличие от .bind(), который связывает каждый элемент. В этих ситуациях вы должны использовать .live() или .delegate(), поскольку начальные затраты на .bind() намного превышают затраты на прослушивание / прослушивание события обработчик родительского элемента.

...