| |
|
|
| | У меня одна страничка проделывает довольно долгий по времени подготовительный процесс.
Я хочу, пока она готовится к показу, развлекать юзера другой страничкой.
Но если запускать одну страничку из другой JavaScript-ом, то браузер пытается блокировать "активное" содержимое или "всплывающее окно". Может быть средствами PHP можно запустить сразу два скрипта по одному запросу браузера? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 05:55)
| | | Перед запуском длительного процесса направляйте пользователя на развлекательную страницу, после чего осуществляйте редирект на страницу с длительным процессом. Пока процесс не завершится пользователь будет лицезреть развлекательную страницу. | |
| |
|
|
| |
|
|
| |
для: cheops
(20.05.2007 в 11:05)
| | | осуществляйте редирект на страницу
Я этого и хочу, только не знаю как это аккуратно сделать.
Браузеры склонны блокировать такие переходы, всплывающие окна показывать итд.
Как это максимально аккуратно сделать без нажатия кнопок пользователем?
Вообще-то я планировал три-четыре развлекательных странички успеть за это время показать. Одной явно будет мало.
Чуточку бы точнее, что значит "редирект"! Русский перевод перенаправить довольно многозначен. Это кучу разных действий можно назвать общим словом "редирект". Что конкретно имелось в виду, какой код? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 11:19)
| | | Под редиректом подразумеваю переход на страницу при помощи отправки клиенту HTTP-заголовка Location (он должен выполняться строго любыми клиентами)
<?php
header("Location: index.php");
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(20.05.2007 в 11:25)
| | | То есть разместить этот отрывок
<?php
header("Location: index.php");
?>
после закрытия тега </html>?
Спасибо!
Ну а два таких заголовка разместить нельзя?
Один-то действительно выполняется без помех со стороны браузера.
Есть у этого заголовка ещё параметры? _blank - может быть или что-то в этом роде? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 11:49)
| | | Нет, после </html> не получится, в этом случае нужно будет использовать конструкцию
<?php
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
?>
|
или прибегнуть к буферизации вывода, так как HTTP-заголовки должны отправляться заранее.
>Ну а два таких заголовка разместить нельзя?
Нет, тут без всплывающего окна не обойтись. | |
| |
|
|
| |
|
|
| |
для: cheops
(20.05.2007 в 12:14)
| | | Что означает
CONTENT='0;
?
И опять же, не понятно где подразумевается расположить этот заголовок по отношению к контенту развлекательного файла?
Если в начале, то, я так понимаю, файл вообще не будет отображаться, сразу получится переход на index.php. | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 05:55)
| | | Два фрейма использовать не получается? | |
| |
|
|
| |
|
|
| |
для: Trianon
(20.05.2007 в 11:05)
| | | Я как-то видел здесь тему, где спрашивалось, как избежать блокирования броузером ява-скрипта. Так вот там был ответ, что для этого ява-скрипт нужно формировать средствами РНР, что-то типа:
<?
echo "<script>alert('Hi!');</script>"
?>
|
Но сам не пробовал... | |
| |
|
|
| |
|
|
| |
для: coloboc66
(20.05.2007 в 11:26)
| | | alert() не блокируется браузером.
Браузером блокируется click() и тому подобное, то есть запуск новых процессов с неизвестным кодом. Стандартные функции Java исполняются без помех. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(20.05.2007 в 11:26)
| | | Браузер получает код, не имея представления, был ли он написан руками, ил сгенерирован php. Не все ответы - верные. | |
| |
|
|
| |
|
|
| |
для: Trianon
(20.05.2007 в 11:44)
| | | Да я это понимаю. PHP работает на хостинге, а браузер получает уже готовый html, ему неизвесно как он образовался. Вопрос в другом:
Как отдать браузеру две страницы на один запрос?!
Ибо внутри браузера страницам плодиться и размножаться почти запрещено. Ну, разве что под строгим присмотром. А юзеров пугает этот безобидный в общем-то, я бы даже сказал естественный для некоторых сообществ процесс! Поэтому я хочу его сделать на сервере, наверняка разработчики http предусмотрели возможность посылки повторного запроса, в ответ на ошибку, может быть, или ещё по какой-то причине. Просто это уже тонкости, в которых я без помощи кого-то опытного не разберусь. | |
| |
|
|
| |
|
|
| |
для: Trianon
(20.05.2007 в 11:05)
| | | Насчёт двух фреймов я не думал. Но будет ли это самым простым решением? Боюсь всё переусложнить. И так уже страница перегружена кодом, не разобрать ничего. Если сейчас ещё во фреймы это объединить, потом разберусь я как этими фреймами управлять? Проще хочу! Но если есть реальная идея с ясной стратегией, когда видно, что не запутаться, то буду благодарен за подсказку.
То есть задача такая: показать несколько развлекательных страничек, пока готовится основная с длинным процессом. Напишите кусочек кода, как вы видите решение! | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 05:55)
| | | Раз cheops сказал нельзя - значит нельзя!!!
Всё обсуждение застыло.
А ведь интересно начиналось.
Проблема, между тем, так и не решилась.
Что мне делать? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.05.2007 в 18:27)
| | | Хеопс сказал вам - что нельзя посылать заголовок после закрывающего тега </html>.
Предложил он вам следующее:
<?php
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
?>
|
Это означает что на вашей "развлекательной" странице будет помещен мета-тег <META HTTP-EQUIV='Refresh' CONTENT='время в сек; URL=index.php?вызов'> между тегами <HEAD> и </HEAD>, который загрузит основную страницу, что может выглядеть в браузере в конечном итоге так:
<HTML>
<HEAD>
<TITLE>Развлекаемся</TITLE>
<META HTTP-EQUIV='Refresh' CONTENT='15 (это время для развелечений); URL=index.php?хватит развлечений, вызов рабочей страницы после 15 сек развлечений'>
</HEAD>
<BODY>
.......
</BODY>
</HTML>
|
Не ждите продолжения кино - пробуйте :) | |
| |
|
|
| |
|
|
| |
для: sim5
(20.05.2007 в 19:15)
| | | Спасибо!
Одно лишь то, что я знаю, что не изобретаю велосипед - уже хорошо!
Попробую как-то иначе...
В принципе, можно и не делать ничего. На Java у меня вариант уже работает, а блокировка скриптов может быть и не часто включена бывает у юзеров. Хорошо бы знать процент...
Ну, тоже наверняка никто не знает!
Остаётся на кофейной гуще погадать.
Кто рецептик подбросит? :-) | |
| |
|
|