чистая реализация события jquery - PullRequest
0 голосов
/ 13 января 2010

Привет, я не уверен, с чего начать, так как события и их обработчики - мое самое слабое место в программировании....

setInterval(function(){
   //code goes here
},1000);

, поскольку мы знаем, что это выполняется в бесконечном цикле / цикл

Мой вопрос заключается в том, занимает ли код внутри функции больше одной секунды (например, 5 секунд) для завершенияделает интервал на 2-й, 3-й и n-й секундах, что заставляет скрипт работать медленно...

есть ли способ разрешить завершение 1-го интервала, а затем запустить его снова, если область действия равна 0 ...

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

Я не знаю, есть ли у меня смысл, но, пожалуйста, прокомментируйте ниже, и я постараюсь объяснить больше.

Ответы [ 2 ]

0 голосов
/ 13 января 2010

http://www.w3schools.com/js/js_timing.asp

прокрутка @ Бесконечный цикл объясняет, как отменить его или дождаться его завершения, прежде чем он снова запустится ...

0 голосов
/ 13 января 2010

setInterval будет запускать новую итерацию цикла с заданным интервалом независимо от того, сколько времени занимает код внутри. Это отличный способ заблокировать / заблокировать браузер.

Вы можете справиться с этим несколькими способами, в зависимости от того, какие события вы ищете и как вы хотите, чтобы они проходили.

Если вы работаете в основном в jQuery, одним из вариантов будет использование метода queue () в jQuery, чтобы рекурсивно вызывать вашу функцию после завершения остальной части кода. В простых случаях это может сработать.

Если ваш код действительно больше зависит от пользователя, чем просто использовать один из множества обработчиков событий jQuery, таких как click () или bind (), для запуска кода, когда пользователь выполняет это действие.

Без дополнительной информации сложно дать вам конкретное решение.

...