Проблема с SetInterval() jquery

JavaScript jQuery веб SetInterval()

Доброго времени суток!
Столкнулся с такой проблемой, setinterval как то странно работает.

Есть листалка, перелистываю слайд каждых 10 секунд. Все работает нормально, но когда в гугл хроме я перехожу на другую вкладку, поклацаю там и вернусь на вкладку с сайтом, то вижу страшную картину, слайды беспрерывно меняются наезажая друг на друга, до тех пор пока не пролистается все время, которое вкладка была неактивна, ни кто с таким не сталкивался?

Примечание:
Я не совсем понял как мне проверить нужно ли перелистывать..Сейчас прошло 10 секунд - перелистнулось, а как иначе проверить?

Примечание:
Вернее "нужно ли продолжать"

Примечание:
Еще одно, проблема именно если я перехожу на другую вкладку в браузере.

Примечание:
Полностью убрал setInterval(), сделал по примеру Сергей Yakudza_Sg. Пока я на сайте - все работает нормально, потом когда я перехожу на другую вкладку в браузере происходит что то страшное, скролл начинает листаться все то время, которое вкладка была неактивна.
Ответы:
Да, эта проблема известная. Все из-за использования setInterval().
Дело в том, что setInterval не дожидается завершения работы скрипта который он вызывает, и уже планирует следующий вызов. Это приводит к образованию очереди ф-й которые уже вызваны, но еще не выполнены.
Для избежания подобной проблемы, нужно немного перестроить логику скрипта. Нужно чтобы он дожидался выполнения действия (перелистывания слайда), а затем уже планировал следующее. Этого можно добиться если использовать однократную задержку setTimeout


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.