как сделать автоматическое закрытие окна на джаваскрипте непосредственно после того, как уже выполнился пхп-код?
Вид для печати
как сделать автоматическое закрытие окна на джаваскрипте непосредственно после того, как уже выполнился пхп-код?
э. это что-то из ajax
понятн)) [Only registered and activated users can see links. Click Here To Register...]
[/quote]Цитата:
Originally posted by xmagnusx@Jun 9 2007, 11:01
как сделать автоматическое закрытие окна на джаваскрипте непосредственно после того, как уже выполнился пхп-код?
<div align='right'>[Only registered and activated users can see links. Click Here To Register...]
простейший вариант - вызов close() сразу после php-скрипта. смотря что именно ты хочешь сделать.
<div class='quotetop'>Цитата</div>[Only registered and activated users can see links. Click Here To Register...]Цитата:
э. это что-то из ajax[/b]
и что?Цитата:
Originally posted by Scorched.dn.ua@Jun 10 2007, 00:03
[b]простейший вариант - вызов close() сразу после php-скрипта. смотря что именно ты хочешь сделать.
ну просто гениальный ход - отправить клиенту документ, закрывающий окно.
кто успел прочесть - тот молодец [Only registered and activated users can see links. Click Here To Register...]
думаю автор темы имеет ввиду, что по отправки какой-либо формы запускается скрипт на сервере и по его выполнении окно, содержавшее форму, должно быть закрыто. не понятно, правда, зачем это надо... :crazy:
xmagnusx, поясните ваш вопрос, пожалуйста.
null
спасибо. я знал, что ты оценишьЦитата:
ну просто гениальный ход
идея проста. например, если на сервере происходит какое-либо длительное событие. допустим дамп бд или просто объемные вычисления, то можно открывать файл со скриптом в другом окне, в котором будет написано что-нибудь вроде "подождите плз", а затем оно само закрывается.
Вот простой пример:
index.php
longphpscript.phpКод:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" />
<title>Долгоработающий пхп-скрипт</title>
****<script type="text/javascript">
****
*function startlongphpscript() {
*****window.open(
* *"longphpscript.php",
* *"w",
* *"location=0,status=0,scrollbars=0,width=400,height=100"
*****);
*} *
*
****</script>
</head>
<body>
****
Нажми на кнопку, и я начну долго вычислять факториал большого числа.</p>
****<input type="button" value="кнопка" onclick="startlongphpscript();" />
</body>
</html>
Код:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<title>Долгоработающий пхп-скрипт</title>
</head>
<body>
Вычисляем факториал большого числа</p>
<hr />
<?php
****ob_implicit_flush();
****
****$n = 50000000; *****// большое число..
****$res = 1;
****
****$iters = $n/100; $percent = 0;
****
****for( $i = $n; $i > 0; $i--,$iters-- ) {
*$res = $res * $i;
*if( $iters == 0 ) {
*****$iters = $n/100;
*****$percent++;
*****
*****echo '<script type="text/javascript">document.body.innerHTML =
* *"
уже посчитано '.$percent.'% факториала большого числа..</p>"</script>';
*}
****}
?>
<script type="text/javascript"> close(); </script>
</body>
</html>
в окне - форма для редактирования... изменения сохраняются... -> и закрывается
ну вот ваш скрипт-обработчик формы, в случае если данные успешно добавлены, говоритЦитата:
в окне - форма для редактирования... изменения сохраняются... -> и закрывается
Код:echo '<script type="text/javascript">close();</script>';
))) я уже понял, что ступил..... спасибо всем))
и ещё вопрос: как перед закрытием этого окна передать обновление другой странице?
заранее спасибо...
т. е. пользователь, надавив на кнопку, долго ждет пока загрузится документ с результатом (сервер долго не отвечает - он считает факториал), затем получает страничку со текстом "Вычисляем факториал большого числа уже посчитано 100% факториала...", которая тут же закрывает окно. так?
хм...
после close() объект окна продолжает существовать. поэтому можно например воспользоваться объектом opener, который соответствует объекту window окна, из которого было открыто наше. с его помощью можно сделать рефреш.Цитата:
и ещё вопрос: как перед закрытием этого окна передать обновление другой странице?
null
просто запусти это и увидишь как ))Цитата:
т. е. пользователь, надавив на кнопку, долго ждет пока загрузится документ с результатом (сервер долго не отвечает - он считает факториал), затем получает страничку со текстом "Вычисляем факториал большого числа уже посчитано 100% факториала...", которая тут же закрывает окно. так?
хм...
пока интеграл считается, пользователь видит сколько процентов уже посчитано. этого мы добиваемся, выключая буферизацию вывода в пхп и используя тот факт, что браузеры рендерят контент сразу по мере получения его от сервера.
если запустить мой пример, можно будет увидеть постепенное изменение значения % прогресса. наконец, когда доходим до 100% окно закрывается. несколько скачкообразное, но без асинхронных js-запросов более плавного не добиться.
если мой пример, зачем нужно отправлять close(), тебе не понравился, то вот практическая ситуация Магнуса еще лучше это иллюстрирует
а не могли бы Вы код скинуть... а то я не оч силён в джаваскрипте..
opener.???
opener.location.reload(true);
спасибо.. я без location пробывал)))