Как правильно вывести приветствие через 5 секунд после запуска скрипта

Какая арифметическая операция приводит к ошибке в javascript?

Сколько параметров можно передать функции JS?

Ровно столько, сколько указано в определении функции

Сколько указано в определении функции или меньше

Сколько указано в определении функции или больше

Какое событие JS не вызывается кликом мыши ?

В каком случае из перечисленных событие не попадет на обработку JS?

Если в момент его наступления обрабатывается другое событие

Если страничка просматривается локально, т.е offline

+Только если javascript отключен

Что делает код JS: break me;

Ломает интерпретатор javascript

+Выходит из текущего блока цикла или switch на метку “me”

В разных браузерах по-разному

Какой оператор JS из этих – выполняет не только математические операции?

Можно ли инициировать DOM-событие в JS?

В некоторых браузерах можно

Какие из этих вариантов задают массив из элементов “a”, “b” в JS?

+var a = new Array(“a”,”b”)

Какие из этих тагов в JS соответствуют стандарту HTML (strict) ?

setTimeout(function() , 5);

Можно ли через javascript подключить внешний js-файл, отсутствующий на странице?

Да, но только один раз

Да, но только до загрузки страницы

+Да, сколько угодно файлов когда угодно

Что такое ECMAScript?

Новый язык программирования

Переработанная реализация Javascript

+Спецификация языка Javascript

Какие из этих вызовов в JSкорректно бросят исключение ?

+throw new Error(“Ошибка”)

Что делает оператор JS ===?

Сравнивает по ссылке, а не по значению

+Сравнивает без приведения типа

Нет такого оператора

Из родительского окна во фрейм child> JS поставили переменную:

frames.child.users = [«Маша», «Паша», «Даша»]

if (users instanceof Array)

+if (users instanceof parent.Array)

if (users.constructor.name == “Array”)

if(typeof users == “array”)

Какая арифметическая операция приводит к ошибке в javascript?

Деление на ноль

Умножение числа на строку

Корень из отрицательного числа

+Никакая из вышеперечисленных

Какова длина a.length массива a в JS:
var a = []
a[1] = 5
a[3] = 53
delete a[3]

Чему равно i в конце кода JS?
var i = 5
<
var i = 1

Источник

Форум

Справочник

Страница 1 из 2 1 2 >
Опции темы Искать в теме

Доброго времен, уважаемые форумчане. Помогите пожалуйста мне по такому вопросу. Есть скрипт слайдера, который я подцепляю внизу страницы, который нужен для работы слайдера(хотя это и есть сам слайдер). Как сделать чтобы он подгрузился не сразу, а через 5 секунд?

Вот две строки кода:

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

Собственно по задержке.

пример 1) отложенная загрузка скрипта

пример2) отложенная инициализация.

Вам помогут:
window.setTimeout( .. )
document.createElement(‘script’)
document.body.appendChild( .. )

А вобще, задача странная какая-то. Наверняка решается другим более простым способом.

engine1.zip (48.4 Кб, 4 просмотров)

В конце флешки у меня стоит вызов функции
getUrl(«javascript :closeblock();»

Функция эта убирает флешку, как я понимаю, перед ней нужно воткнуть функцию запуска слайдера. а как эту функцию сделать ?)

а что не так со вторым способом?

Он не к месту если нужно чего то дождаться, к примеру загрузки чего нибудь. Так как таймер может сработать либо раньше подходящего момента, либо наоборот позже.

ай да молодца, это единственное правильное решение.

если closeblock это функция в каком то скрипте, а я уверен что это так. То вызове вместо него какойнибудь onStart();

Источник

Планирование: setTimeout и setInterval

Мы можем вызвать функцию не в данный момент, а позже, через заданный интервал времени. Это называется «планирование вызова».

Для этого существуют два метода:

  • setTimeout позволяет вызвать функцию один раз через определённый интервал времени.
  • setInterval позволяет вызывать функцию регулярно, повторяя вызов через определённый интервал времени.

Эти методы не являются частью спецификации JavaScript. Но большинство сред выполнения JS-кода имеют внутренний планировщик и предоставляют доступ к этим методам. В частности, они поддерживаются во всех браузерах и Node.js.

setTimeout

func|code Функция или строка кода для выполнения. Обычно это функция. По историческим причинам можно передать и строку кода, но это не рекомендуется. delay Задержка перед запуском в миллисекундах (1000 мс = 1 с). Значение по умолчанию – 0. arg1 , arg2 … Аргументы, передаваемые в функцию (не поддерживается в IE9-)

Например, данный код вызывает sayHi() спустя одну секунду:

Если первый аргумент является строкой, то JavaScript создаст из неё функцию.

Это также будет работать:

Но использование строк не рекомендуется. Вместо этого используйте функции. Например, так:

Начинающие разработчики иногда ошибаются, добавляя скобки () после функции:

Это не работает, потому что setTimeout ожидает ссылку на функцию. Здесь sayHi() запускает выполнение функции, и результат выполнения отправляется в setTimeout . В нашем случае результатом выполнения sayHi() является undefined (так как функция ничего не возвращает), поэтому ничего не планируется.

Отмена через clearTimeout

Вызов setTimeout возвращает «идентификатор таймера» timerId , который можно использовать для отмены дальнейшего выполнения.

Синтаксис для отмены:

В коде ниже планируем вызов функции и затем отменяем его (просто передумали). В результате ничего не происходит:

Как мы видим из вывода alert , в браузере идентификатором таймера является число. В других средах это может быть что-то ещё. Например, Node.js возвращает объект таймера с дополнительными методами.

Повторюсь, что нет единой спецификации на эти методы, поэтому такое поведение является нормальным.

Для браузеров таймеры описаны в разделе таймеров стандарта HTML5.

setInterval

Метод setInterval имеет такой же синтаксис как setTimeout :

Все аргументы имеют такое же значение. Но отличие этого метода от setTimeout в том, что функция запускается не один раз, а периодически через указанный интервал времени.

Чтобы остановить дальнейшее выполнение функции, необходимо вызвать clearInterval(timerId) .

Следующий пример выводит сообщение каждые 2 секунды. Через 5 секунд вывод прекращается:

В большинстве браузеров, включая Chrome и Firefox, внутренний счётчик продолжает тикать во время показа alert/confirm/prompt .

Так что если вы запустите код выше и подождёте с закрытием alert несколько секунд, то следующий alert будет показан сразу, как только вы закроете предыдущий. Интервал времени между сообщениями alert будет короче, чем 2 секунды.

Рекурсивный setTimeout

Есть два способа запускать что-то регулярно.

Один из них setInterval . Другим является рекурсивный setTimeout . Например:

Метод setTimeout выше планирует следующий вызов прямо после окончания текущего (*) .

Рекурсивный setTimeout – более гибкий метод, чем setInterval . С его помощью последующий вызов может быть задан по-разному в зависимости от результатов предыдущего.

Например, необходимо написать сервис, который отправляет запрос для получения данных на сервер каждые 5 секунд, но если сервер перегружен, то необходимо увеличить интервал запросов до 10, 20, 40 секунд… Вот псевдокод:

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

Рекурсивный setTimeout позволяет задать задержку между выполнениями более точно, чем setInterval .

Сравним два фрагмента кода. Первый использует setInterval :

Второй использует рекурсивный setTimeout :

Для setInterval внутренний планировщик будет выполнять func(i) каждые 100 мс:

Реальная задержка между вызовами func с помощью setInterval меньше, чем указано в коде!

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

Вполне возможно, что выполнение func будет дольше, чем мы ожидали, и займёт более 100 мс.

В данном случае движок ждёт окончания выполнения func и затем проверяет планировщик и, если время истекло, немедленно запускает его снова.

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

Ниже представлено изображение, показывающее процесс работы рекурсивного setTimeout :

Рекурсивный setTimeout гарантирует фиксированную задержку (здесь 100 мс).

Это потому, что новый вызов планируется в конце предыдущего.

Когда функция передаётся в setInterval/setTimeout , на неё создаётся внутренняя ссылка и сохраняется в планировщике. Это предотвращает попадание функции в сборщик мусора, даже если на неё нет других ссылок.

Для setInterval функция остаётся в памяти до тех пор, пока не будет вызван clearInterval .

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

setTimeout с нулевой задержкой

Особый вариант использования: setTimeout(func, 0) или просто setTimeout(func) .

Это планирует вызов func настолько быстро, насколько это возможно. Но планировщик будет вызывать функцию только после завершения выполнения текущего кода.

Так вызов функции будет запланирован сразу после выполнения текущего кода.

Например, этот код выводит «Привет» и затем сразу «Мир»:

Первая строка помещает вызов в «календарь» через 0 мс. Но планировщик проверит «календарь» только после того, как текущий код завершится. Поэтому «Привет» выводится первым, а «Мир» – после него.

Есть и более продвинутые случаи использования нулевой задержки в браузерах, которые мы рассмотрим в главе Событийный цикл: микрозадачи и макрозадачи.

В браузере есть ограничение на то, как часто внутренние счётчики могут выполняться. В стандарте HTML5 говорится: «после пяти вложенных таймеров интервал должен составлять не менее четырёх миллисекунд.».

Продемонстрируем в примере ниже, что это означает. Вызов setTimeout повторно вызывает себя через 0 мс. Каждый вызов запоминает реальное время от предыдущего вызова в массиве times . Какова реальная задержка? Посмотрим:

Первый таймер запускается сразу (как и указано в спецификации), а затем задержка вступает в игру, и мы видим 9, 15, 20, 24. .

Аналогичное происходит при использовании setInterval вместо setTimeout : setInterval(f) запускает f несколько раз с нулевой задержкой, а затем с задержкой 4+ мс.

Это ограничение существует давно, многие скрипты полагаются на него, поэтому оно сохраняется по историческим причинам.

Этого ограничения нет в серверном JavaScript. Там есть и другие способы планирования асинхронных задач. Например, setImmediate для Node.js. Так что это ограничение относится только к браузерам.

Итого

  • Методы setInterval(func, delay, . args) и setTimeout(func, delay, . args) позволяют выполнять func регулярно или только один раз после задержки delay , заданной в мс.
  • Для отмены выполнения необходимо вызвать clearInterval/clearTimeout со значением, которое возвращают методы setInterval/setTimeout .
  • Вложенный вызов setTimeout является более гибкой альтернативой setInterval . Также он позволяет более точно задать интервал между выполнениями.
  • Планирование с нулевой задержкой setTimeout(func,0) или, что то же самое, setTimeout(func) используется для вызовов, которые должны быть исполнены как можно скорее, после завершения исполнения текущего кода.
  • Браузер ограничивает 4-мя мс минимальную задержку между пятью и более вложенными вызовами setTimeout , а также для setInterval , начиная с 5-го вызова.

Обратим внимание, что все методы планирования не гарантируют точную задержку.

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

  • Перегружен процессор.
  • Вкладка браузера в фоновом режиме.
  • Работа ноутбука от аккумулятора.

Всё это может увеличивать минимальный интервал срабатывания таймера (и минимальную задержку) до 300 или даже 1000 мс в зависимости от браузера и настроек производительности ОС.

Задачи

Вывод каждую секунду

Напишите функцию printNumbers(from, to) , которая выводит число каждую секунду, начиная от from и заканчивая to .

Сделайте два варианта решения.

  1. Используя setInterval .
  2. Используя рекурсивный setTimeout .

Источник

MnogoBlog

как создать сайт на wordpress, настроить и оптимизировать wordpress

Функция задержки, паузы в JavaScript (Delay, Sleep, Pause, & Wait)

Многие языки программирования имеют функцию sleep, которая задержит выполнение программы на заданное количество секунд. Эта функциональность отсутствует в JavaScript, в силу его асинхронной природы. В этой статье мы кратко рассмотрим, как мы можем реализовать функцию sleep в JavaScript.
Скачать исходники для статьи можно ниже
Фреш казино зеркало

Стандартный способ создания задержки в JavaScript заключается в использовании его метода setTimeout:

Результатом данного кода будет вывод слова “Hello”, а затем через две секунды слова “World!” И во многих случаях этого достаточно: делай что-то, жди, потом делай что-то еще.

Однако имейте в виду, что setTimeout – это асинхронный метод. Попробуйте изменить предыдущий код вот так:

Результат будет следующий:

Hello
Goodbye!
World!

Также можно использовать метод setTimeout (или его двоюродного брата setInterval), чтобы заставить JavaScript ждать, пока не будет выполнено условие. Например, вот как можно использовать setTimeout ожидание появления определенного элемента на веб-странице:

Это предполагает, что элемент появится в какой-то определенный момент времени. Если вы не уверены, что это произойдет, вам нужно будет изучить отмену таймера (с помощью методов clearTimeoutor, clearInterval).

Управление потоком в современном JavaScript:

Часто бывает так, что при написании JavaScript нам нужно подождать, пока что-то произойдет (например, данные будут извлечены из API), а затем сделать что-то в ответ (например, обновить пользовательский интерфейс для отображения данных).

К счастью, язык JavaScript значительно эволюционировал за последние несколько лет и теперь предлагает нам новые конструкции, например, с помощью async await мы можем заставить JavaScript выполнять код сверху вниз:

Здесь интерпретатор JavaScript ожидает завершения сетевого запроса, и сначала регистрируется количество публичных репозиций, а затем выводит сообщение “Hello!”.

С помощью цикла заставляем JavaScript ждать!

Рассмотрим следующий код:

Как и ожидалось, сначала будет выведено сообщение “Hello”, затем пауза в течение двух секунд, а после сообщение “World!”.

Вышеуказанный код использует метод Date.now для получения количества миллисекунд, прошедших с 1 января 1970 года и присваивает это значение переменной date. Затем он создает пустую currentDate переменную, прежде чем войти в do … while цикл. В цикле он повторно получает количество миллисекунд, прошедших с 1 января 1970 года, и присваивает значение ранее объявленной currentDate переменной. Цикл будет продолжать до тех пор, пока разница между date и currentDate меньше, чем требуемая задержка в миллисекундах.

Самый лучший способ создать задержку в JavaScript:

Предыдущий способ имеет большой недостаток: цикл блокирует поток выполнения JavaScript и гарантирует, что никто не сможет взаимодействовать с вашей программой до ее завершения. Если вам нужна большая задержка, есть шанс, что он даже может всё сломать.

Так что же делать?

Ну, так можно объединить методы, изученные ранее в этой статье, чтобы сделать менее навязчивую функцию сна:

Этот код будет выводить “Hello”, далее ждать две секунды, а затем выводить “World!” – здесь мы использовали метод setTimeout.

Обратите внимание, что в данном коде мы использовали – then – обратный вызов, чтобы убедиться, что второе сообщение регистрируется с задержкой. Мы также можем подключить больше обратных вызовов к первому сообщению:

Этот код работает, но выглядит некрасиво, но если мы воспользуемся конструкцией async … await, то код станет намного лучше:

Конечно, оба последних способа имеют свои недостатки (или особенности), например, в последнем способе, если записать код так:

Результат будет следующий:

Hello
Goodbye!
World!

То есть в данном способе спит только функция.

PS: Вот, например, можно создать вот такой код, который записываем в файл functions.php темы wordpress:

Код будет выводить сверху сайта поздравление “С Новым Годом!”, далее через 2 секунды поздравление “С 2020 годом!”, а ещё через 2 секунды покажет картинку на новогоднюю тему!

Например, чтобы по истечению

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Читайте также:  Как отмыть грязный чайник
Оцените статью