У меня ошибка, когда я пытаюсь отобразить компьютерные кости, свернутые в моей мини-игре, с задержкой между каждыми рулонами.
Когда я запускаю это, он приостанавливает страницу в течение 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 ниже:
Тем не менее, где я могу поместить это в мой код, потому что я хочу, чтобы он менялся для каждого цикла.