Мой тестовый пример JSPerf "ломается" при оценке toggle() с обратным вызовом
Во время тестирования моего ответа на Добавление поддержки скрытых атрибутов HTML5 в метод jQuery .toggle() я создал тест JSPerf, чтобы определить, насколько медленнее .toggle(function() \[...\])
будет по сравнению с .toggle()
, К моему изумлению, скрипт с дополнительной обработкой работает быстрее! Помимо противоречивых результатов, я подозреваю проблему, потому что я также вижу переключение на экране после того, как результаты вернулись.
Как я могу "исправить" свой тест, чтобы получить точные результаты?
1 ответ
Т.е.
$('button').click(function() {
$('#myElement').toggle(function() { alert("called") })
})
Функция обратного вызова, которую вы передаете toggle
выполняется только после завершения действия переключения. Другими словами, это асинхронное действие, поэтому, если вы хотите измерить, сколько времени потребуется, пока не сработает обратный вызов, используйте функцию асинхронного / отложенного выполнения в jsPerf.