У меня есть скрипт, который добавляет обработчики событий клика примерно к 500 элементам на странице через JQuery .live или .bind (пока не решил, что еще), и у меня проблема с производительностью JQuery.Ожидание JQuery для завершения привязок .live() или .bind()?
С небольшим набором данных я могу загрузить страницу, и как только страница закончит загрузку в соответствии с браузером, я могу нажать на что-то и выключить. Но увеличьте набор данных, и существует определенная задержка между окончанием загрузки страницы и обработкой клика, и я могу только предположить, что JQuery все еще работает с привязкой обработчиков событий - щелчок обрабатывается правильно, поэтому я предполагаю, что он попадает в очередь а затем обрабатывается.
Есть ли способ, чтобы JQuery ждал завершения .live() перед перемещением или, другими словами, обрабатывать его синхронно, а не асинхронно, если это имеет смысл? Поэтому я могу поместить загрузочный экран перед запуском вызова .live() и снять его, когда это будет сделано.
Привет Му
Задержка возникает, если я использую .bind или .live, и я не вижу другой причины задержки, кроме этих конкретных вызовов. В основном, мое приложение запускается на $ (document) .ready, вызывает $ ('. MenuItem'). Live (..... и затем сидит там, ожидая взаимодействия с пользователем). При небольшом количестве тестовых данных приложение мгновенно можно использовать, но увеличивать тестовые данные, и я получаю вышеупомянутую задержку при обработке первого щелчка. – Moo
@Moo - '.live()' не вызовет вашу задержку, если не будет правильно использоваться ... должно быть что-то еще происходит on, 'live()' создает один обработчик событий на 'document', это буквально * все * он делает, что еще происходит, кроме связывания? –
На этом этапе? Буквально ничего - вся остальная часть приложения работает с этими связанные события клика, не происходит манипуляции с dom, нет анимаций, ничего не происходит до тех пор, пока не произойдет щелчок. – Moo