Очень частый вопрос на собеседовании кандидата на должность веб-разработчик - Чем отличается setTimeout от setInterval. Важно не только знать чем отличается setTimeout от setInterval, но и понимать как можно использовать оба метода Javascript в задачах веб-программиста. В этой статье на примерах мы разберем что это за методы и чем они отличаются друг от друга
Методы setTimeout и setInterval в Javascript
Очень частый вопрос на собеседовании кандидата на должность веб-разработчик - Чем отличается setTimeout от setInterval. Важно не только знать чем отличается setTimeout от setInterval, но и понимать как можно использовать оба метода Javascript в задачах веб-программиста. В этой статье на примерах мы разберем что это за методы и чем они отличаются друг от друга
Web-hosting rating:
8 out of
10 with
325 ratings
Видеоурок к статье
Введение
Для того, чтобы понять чем отличается метод setTimeout от setInterval давайте на примерах разберем, как работают эти методы.
Метод setTimeout
Метод setTimeout служит для того, чтобы вы смогли выполнить какой-нибудь Javascript сценарий с определенным интервалом.
Пример setTimeout:
Предположим, что вам нужно вывести модальное окно или какой-нибудь текст не сразу после загрузки страницы, а после того, как пользователь провел на вашей странице 10 секунд.
Создайте html файл с содержимым:
В данном примере, мы создали структуру документа html, создали div с id settimeout и подключили библиотеку JQuery.
Затем мы создали анонимный метод setTimeout и задали время выполнения через 10 секунд. Обратите внимание, что интервал задается в миллисекундах.
Внутри метода мы говорим, что хотим в div с id settimeout вставить html с текстом "Я появился через 10 секунд после загрузки страницы".
Стоит заметить, что setTimeout выполняется только один раз.
Метод setInterval
В отличии от setTimeout, метод setInterval выполняется до тех пор, пока не будет вызван метод clearInterval.
Для демонстрации метода setInterval, усложним немного пример.
Наш пример будет состоять из двух файлом ajax.php в котором мы будем хранить массив и возвращать его в формате json.
В файле index.html мы будем ajax'сом выводить новости из файла ajax.php с интервалом две секунды.
Файл ajax.php
В этом файле для примера мы будем хранить данные новостей. Первой строкой мы указываем кодировку utf-8 чтобы можно было корректно отображать русский язык. Далее мы создаем многомерный массив. И строкой json_encode мы преобразуем массив php в формат json для работы с этими данными в javascript.
Теперь дополните созданный файл из прошлого примера index.html следующим кодом:
Методом библиотеки Jquery $.ajax мы делаем фоновую загрузку данных из файла ajax.php. Далее мы создаем функцию setInterval где итеративно добавляем к переменной count единицу. Методом setInterval мы заменили цикл each, чтобы продемонстрировать setInterval.
Методом Jquery append добавляем к div c id setinterval данные. Когда новости заканчиваются, мы очищаем метод setInterval clearInterval, для того, чтобы он больше не выполнялся.
В результате вы увидите, что новости выводятся не все сразу, а с интервалом две секунды.
Выводы
Методы setInterval и setTimeout используются очень часто в работе веб-программиста.
Если у вас остались вопросы и непонятен принцип работы этих двух полезных методов javascript, посмотрите видеоурок статье.
Подписывайтесь на наш канал Youtube, вступайте в группу VK. Также вы можете подписаться на нашу почтовую рассылку, чтобы быть в курсе о новых и полезных материалах для веб-разработчика.
X
Доступ к закрытому разделу сайта
Для того, чтобы посмотреть видео, зарегистрируйтесь в личном кабинете
Все материалы с сайта wh-db.com и ru.wh-db.com защищены авторским правом. Копирование, публикация, продажа и распространение материала строго запрещены.