#javascript #jquery #html #settimeout
#javascript #jquery #HTML #settimeout
Вопрос:
Суть этого:
Я создаю эффект с помощью jQuery, в котором отображается последовательность divs, и каждый div «оживляет» ввод некоторого текста — на самом деле это просто мой сброс значения jQuery .html () в текстовую подстроку (постепенно увеличивающейся длины) очень много раз с помощью setTimeout() Javascript.
Время от времени анимация ввода останавливается на полпути к тексту и просто зависает там, пока текст теоретически не закончит ввод — в этот момент он показывает полный текст. Зависания происходят последовательно в одних и тех же местах в Chrome, Firefox и Safari и на разных компьютерах. Странная часть заключается в том, что, хотя я вижу, что он останавливается, во время отладки я все еще вижу, что текст div вводится правильно в дереве DOM.
Я также разрешаю пользователю щелкнуть, чтобы перейти к следующему div. Проблема с остановкой возникает только после того, как я запустил этот обратный вызов click.
У кого-нибудь есть идеи? Я здесь в тупике. 🙁 К сожалению, я не могу опубликовать какой-либо код, но я могу предоставить псевдокод, если это поможет.
Комментарии:
1. Да, пожалуйста, опубликуйте какой-нибудь код, псевдо или нет, чтобы рассказать нам, что вы делаете.
2. a) сбрасываете ли вы время ожидания (
clearTimeout(timeoutID)
), когда пользователь нажимает «пропустить»? б) Попробуйте отключить свой отладчик во время тестирования этого — например, Firebug довольно сильно загружает процессор, когда ситуация быстро меняется в DOM
Ответ №1:
Chrome, Firefox и Safari используют JavaScript для компиляторов собственного кода. Они устанавливаются в неуказанные моменты, вызывая небольшую задержку в выполнении JavaScript. Может быть причиной.