Php задержка в цикле

У меня ошибка, когда я пытаюсь отобразить компьютерные кости, свернутые в моей мини-игре, с задержкой между каждыми рулонами.

Когда я запускаю это, он приостанавливает страницу в течение 2 секунд, а затем запускает функцию showDice сразу, без промежуточной задержки.

Есть ли способ исправить это?

php sleep delay

2 ответа

1 Swayze [2014-03-30 06:21:00]

Проблема заключается в том, что PHP-код выполняется на сервере при запросе страницы.
Итак, что происходит, функция sleep() вызывает паузу, прежде чем HTML будет отправлен в браузер пользователя.
Имеет ли это смысл?

Чтобы страница могла выводить ваши значения с шагом, вам нужно будет использовать скрипт на стороне клиента
таких как JavaScript.

вы могли бы сделать что-то вроде этого..

(Новые строки в эхо-командах помогают выводить JavaScript-выход из исходного кода)
если $ roll was = 3/Это выглядело бы примерно так

однако, если вам нужно помнить свои значения в кости, вам нужно будет поместить их в массив.

0 Swayze [2014-03-30 08:32:00]

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

Задержки php

Всем привет! Сегодня мы с вами рассмотрим реализацию задержек на php. Итак, поехали!

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

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

У функции sleep() есть аналог, а именно функция usleep().

Отличие заключается в том что данная функция принимает значение аргумента в микросекундах.(3000000 мкс = 3 с)

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

Первым аргументом данная функция принимает количество секунд, а вторым количество микросекунд. В нашем примере мы выполнили задержку в 1.5 секунды.

Можно также выполнять задержки относительно текущего времени.

Делается это через функцию time_sleep_until(). В ней мы указываем количество секунд прошедших с эпохи UNIX, то есть с 1979 года. Сделать это можно через функцию time(). Получив текущее количество секунд прошедших с 1979 Года нам достаточно приплюсовать количество секунд задержки.

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

Здесь мы сделали задержку в 3 секунды. Однако в самом начале была вызвана функция set_time_limit() с аргументом 2 секунды. Именно с помощью данной функции мы можем ограничивать время выполнения скрипта на заданное время. Так как время выполнения скрипта вместе с задержкой у нас 3 секунды, а ограничение выполнения стоит на 2 секунды, произойдет ошибка.

Если изменить ограничение, к примеру на 4 секунды.

Здесь ошибки уже не будет.

С помощью функции set_time_limit() мы можем выставить неограниченное время выполнения скрипта.

Достаточно в данной функции указать значение 0. Однако перед этим необходимо в файле конфигурации php.ini отключить безопасный режим.

Вот так мы можем реализовывать временные задержки при выполнении php сценариев.

На этом данная статья подошла к концу. Не забывайте оставлять вопросы в комментариях или группе

А на этом у меня все. Желаю вам успехов и удачи! Пока.

Возможно ли иметь случайную задержку в цикле для обработки каждого элемента? и если это так, это влияет на таймаут php?

Я хочу, чтобы случайное число встречалось для каждого элемента, например, первый пункт может спать 5, а следующий будет 10.

Я знаю код для случайного числа на 10-100 ниже:

Тем не менее, где я могу поместить это в мой код, потому что я хочу, чтобы он менялся для каждого цикла.

Оцените статью
Много толка
Добавить комментарий