Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как сделать так: ... ?
 
 автор: Дмитрий2   (15.01.2008 в 21:27)   письмо автору
 
 

когда начала работать функция 'copy' на сервере,чтобы браузер не ждал конца загрузки файла, а сам перешел на другую страницу?

   
 
 автор: Unkind   (15.01.2008 в 21:30)   письмо автору
 
   для: Дмитрий2   (15.01.2008 в 21:27)
 

Сделать переадресацию.

   
 
 автор: Дмитрий2   (15.01.2008 в 21:37)   письмо автору
 
   для: Unkind   (15.01.2008 в 21:30)
 

По времени?

   
 
 автор: Unkind   (15.01.2008 в 23:55)   письмо автору
 
   для: Дмитрий2   (15.01.2008 в 21:37)
 

> По времени?
Нет. Проверить всё, что нужно и написать:

<?php
// ...
header'Location: http://example.com/' );

// Ваши ресурсоемкие операции.
?>

   
 
 автор: Trianon   (16.01.2008 в 00:04)   письмо автору
 
   для: Unkind   (15.01.2008 в 23:55)
 

Это ничего не даст.
Сама по себе функция header() заголовка отклика не отправит.
А exit() приедет к завершению исполнения скрипта.

   
 
 автор: Unkind   (16.01.2008 в 00:06)   письмо автору
 
   для: Trianon   (16.01.2008 в 00:04)
 

Вы думаете, что PHP отправить заголовки после завершения скрипта? Мне кажется, что тут всё зависит от output_buffering...Можно тогда вывести пробел и что-то вроде того, чтобы наверняка.

   
 
 автор: Trianon   (16.01.2008 в 00:17)   письмо автору
 
   для: Unkind   (16.01.2008 в 00:06)
 

>Вы думаете, что PHP отправить заголовки после завершения скрипта?
Тут дело даже не в том, когда php отправит заголовки.
Он может отправить их с первым байтом данных, а может и с последним.
Дело в том, когда на редирект среагирует браузер.
Всяко, среагирует он не раньше, чем к нему этот заголовок придет.
И не позже, чем придет все тело. Но запросто может статься, что заголовок придет лишь вместе с телом. Особенно, если тело короткое.
И зависит тут всё от множества настроек. В т ч. и различных прокси .
Как это мне представляется.

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

   
 
 автор: Unkind   (16.01.2008 в 00:22)   письмо автору
 
   для: Trianon   (16.01.2008 в 00:17)
 

Может вы начали отвечать прежде, чем я обновил сообщение. OK, можно сформировать простое тело. Если буферизации вывода нет (или же стоит буферизация по небольшим "порциям") , то данные обычно отправляются сразу (или же после набора нужной "порции").
А браузеры, как правило, плюют на тело, если видят Location.

P.S.
> Надо внимательно читать стандарт, чтобы понять, имеет ли право браузер интерпретировать заголовок, не дожидаясь прихода всего тела
То есть Вы такое в стандарте видели?

   
 
 автор: Trianon   (16.01.2008 в 00:40)   письмо автору
 
   для: Unkind   (16.01.2008 в 00:22)
 

>То есть Вы такое в стандарте видели?
Я этого не говорил. Я сказал только то, что сказал.

В стандарте много что написано прямо или опосредованно влияющего на поведение.
В частности, глава 13 (Caching in HTTP ) , которую мне за раз не проанализировать.

   
 
 автор: Unkind   (16.01.2008 в 00:41)   письмо автору
 
   для: Trianon   (16.01.2008 в 00:40)
 

> В частности, глава 13 (Caching in HTTP ) , которую мне за раз не проанализировать.
А Вы сейчас попытались это сделать за эти 18 минут? :))

   
 
 автор: Trianon   (16.01.2008 в 00:48)   письмо автору
 
   для: Unkind   (16.01.2008 в 00:41)
 

Нет.
То, чего намеревался достичь за означенный промежуток времени, я достиг :)

   
 
 автор: Дмитрий2   (15.01.2008 в 21:35)   письмо автору
 
   для: Дмитрий2   (15.01.2008 в 21:27)
 


if(copy("$_POST[url]","./load/drugoe/$_POST[cop]"))print "Всё ОК<br/><a href=\"./vvod_copy.php\">НАЗАД</a><br/><a href=\"http://localhost/\">Посмотреть</a>";
else print"Что-то не так<br/><a href=\"./vvod_copy.php\">НАЗАД</a>";

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

   
 
 автор: Faraon   (15.01.2008 в 21:38)   письмо автору
 
   для: Дмитрий2   (15.01.2008 в 21:35)
 

PHP обрабатывает последовательно, и соответсвенно после загрузки файла продолжит дальнейший вывод.

   
 
 автор: Дмитрий2   (15.01.2008 в 21:46)   письмо автору
 
   для: Faraon   (15.01.2008 в 21:38)
 

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

   
 
 автор: mihdan   (15.01.2008 в 23:49)   письмо автору
 
   для: Дмитрий2   (15.01.2008 в 21:46)
 

вот

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования