Перенаправление с таймером в PHP?

Это должно быть еще быстрее при использовании GUID. Предположим, что у Вас есть записи

  1. 100
  2. 200
  3. 3000
  4. ....

, Если у Вас есть индекс (двоичный поиск, можно найти физическое местоположение записи, которую Вы ищете в O (LG n) время, вместо того, чтобы искать последовательно O (n) время. Это вызвано тем, что Вы не знаете то, что записывает Вас, имеют в Вас таблицу.

7
задан 14 December 2009 в 16:05
поделиться

6 ответов

Вы можете заставить свой PHP-скрипт засыпать на 10 секунд,

sleep(10);

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

<meta http-equiv="refresh" content="10;url=http://google.com">

или javascript.

setTimeout(function(){
  window.location = "http://google.com";
}, 10000);

Найдено в комментариях Даниэля:

header('Refresh: 10; URL=http://yoursite.com/page.php');

было бы идеально для этой ситуации, поскольку не требует Javascript или HTML.

33
ответ дан 6 December 2019 в 04:52
поделиться

Вы захотите сделать перенаправление на стороне клиента:

<meta http-equiv="refresh" content="5;url=http://yourdomain.com"/>

, но если вы чувствуете, что это должно быть на PHP, вы можете сделать что-то вроде:

<?php

// wait 5 seconds and redirect :)
echo "<meta http-equiv=\"refresh\" content=\"5;url=http://yourdomain.com\"/>";

?>
2
ответ дан 6 December 2019 в 04:52
поделиться

Это плохая идея переводить PHP-скрипт в спящий режим. На самом деле это простой способ DoS-атаки вашего сервера;) PHP-скрипт в памяти потребляет достаточно ресурсов, особенно если он работает как CGI.

2
ответ дан 6 December 2019 в 04:52
поделиться

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

Это не так уж много кода в Javascript. См. эту ссылку , чтобы очень просто реализовать это на своей странице

1
ответ дан 6 December 2019 в 04:52
поделиться

После загрузки веб-страницы PHP больше не запускается. Это означает, что вы не можете ничего делать с PHP после загрузки страницы, если вы не используете что-то вроде AJAX (Javascript, вызывающий страницу PHP) для передачи данных на страницу. Это дает вам несколько методов для достижения желаемого 10-секундного ожидания при перенаправлении.

Во-первых, вы можете указать своему скрипту на sleep () на 10 секунд. Однако это, как упомянул Джонатан, означает, что вы будете выглядеть так, как будто ваша страница очень медленная, только для того, чтобы пользователь был перенаправлен.

sleep(10);

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

<meta http-equiv="refresh" content="10;url=http://example.com"/>

Тогда у вас также может быть проблема с Javascript местоположение. href = "bleh"; команда после ожидания в течение 10 секунд.

0
ответ дан 6 December 2019 в 04:52
поделиться

Другой метод, о котором стоит упомянуть, - это отправка HTTP-заголовка Location с функцией PHP header () . Итак, если вам нужно надежное решение, которое избегает javascript и метатегов, сохраняя при этом отзывчивость веб-приложения, это может быть создание iframe (или фрейма) и загрузка туда php-скрипта, который содержит следующее:

sleep(10);
header("Location: http://my.redirect.location.com");
0
ответ дан 6 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: