Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Клиентские сценарии. Язык JavaScript. Таймеры



http://www.rusdoc.ru/articles/17239/

На самом фундаментальном уровне чрезвычайно важно представлять, как работают таймеры в javascript. Очень часто работа таймеров кажется противоречащей интуиции в силу того, что все они запущены внутри одного потока. Но давайте начнем с характеристики трех основных функций, которые мы используем, чтобы создавать и управлять нашими таймерами.

· var id = settimeout(fn, delay); — создает единичный таймер, срабатывание которого выливается в вызов определенной функции после указанной задержки. Данный метод возвращает уникальный id, с помощью которого можно в дальнейшем отменить таймер.

· var id = setinterval(fn, delay); — похож на предыдущий метод settimeout, но совершает вызовы заданной функции постоянно (каждый раз с заданной задержкой), пока не будет отменен.

· clearinterval(id);, cleartimeout(id); — принимают в качестве параметр id таймера (возвращаемый двумя предыдущими методами) и предотвращают дальнейшие вызовы таймера.

Для того чтобы уяснить внутренние аспекты работы таймеров, стоит учесть одну важную деталь, которую стоит осветить: задержка при выполнении таймера не гарантируется. Так как весь javascript исполняется в браузере в один поток, то асинхронные события (например, клики мышкой или таймеры) запускаются только по возникновению «окна» в этом основном потоке (обработчики событий и вызываемые функции, фактически, «встраиваются» в основной поток выполнения).

На данный момент важными мне кажутся два вывода. Первое, если вы планируете регулярно совершать какое-то действие (например, опрашивать сервер), лучше всего это будет производить через setinterval: этот метод будет выполнен, в общем случае, быстрее, чем settimeout, и не будет накапливаться в стек. Однако, во-вторых, если речь идет о нагруженных вычислениях, когда вы экономите процессорное время (может быть, в ущерб своевременности обновления интерфейса), то ваш выбор — это settimeout. Он гарантирует, что между запусками заявленной функции пройдет времени не меньше, чем требуется.






Дата публикования: 2015-01-13; Прочитано: 309 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...