Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Прерывание текущего выполнение скрипта с паузой
Само собой выполнение скрипта прервется через ~20 секунд.
Но если в этой время в браузере перейти на другую страницу, она просто будет ждать окончания выполнение текущего скрипта на сервере, и только после этого обработает новый запрос.
Задача состоит в том, чтобы как-то прервать выполняемый скрипт.
На данный момент очевидно, что новый запрос будет обработан через как минимум 20 секунд, а это не есть хорошо. Если перейти в другой браузер, то ПХП спокойной обработает следующий запрос.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
использовать ajax
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
GeeMTee
Отправлено: 17 Января, 2011 - 09:27:40
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2011 Откуда: Беларусь, Минск
Помог: 0 раз(а)
OrmaJever, что значит использовать ajax?
Без разницы, в каком виде я посылаю запрос. Если он не полностью отработал, я не могу послать новый. Точнее я посылаю серверу, но он не отрабатывает, пока текущий не закончится.
----- <?php echo 'Hello, World' ; ?>
DeepVarvar
Отправлено: 17 Января, 2011 - 09:44:26
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
GeeMTee пишет:
я не могу послать новый
Cказки рассказываете. Хоть тыщу новых запросов можно отправить на сервер... И каждый новый запрос, читай процесс (даже с одного ip и браузера) будет запускаться в своем индивидуальном окружении. Иначе как по вашему пользователи в очередь чтоли встают на выполнение запросов??? Нет!!! Происходит ветвление процессов. (Добавление)
И если клиент уйдет не дождавшись, процесс завершится сам.
Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2011 Откуда: Беларусь, Минск
Помог: 0 раз(а)
DeepVarvar пишет:
Cказки рассказываете. Хоть тыщу новых запросов можно отправить на сервер... И каждый новый запрос, читай процесс (даже с одного ip и браузера) будет запускаться в своем индивидуальном окружении.
А может быть Вы всё-таки попробуете реализовать мой пример, а не будете так говорить.
Если на сервере выполняется цикл (как в моем примере, например), то пока он не выполнится, новый запрос не будет обработан.
Возможно, есть какой-то параметр в настройках, который влияет на это.
----- <?php echo 'Hello, World' ; ?>
DeepVarvar
Отправлено: 17 Января, 2011 - 10:08:24
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
GeeMTee пишет:
Если на сервере выполняется цикл (как в моем примере, например), то пока он не выполнится, новый запрос не будет обработан.
Вы не правы. Щас нарисуем примерчик )))))) (Добавление)
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
GeeMTee пишет:
Задача состоит в том, чтобы как-то прервать выполняемый скрипт.
Для осуществления создания предполагаемой схемы работы web-приложения в действительности целесообразно использование технологий интерактивного взаимодействия с сервером таких как Iframe/AJAX - однако явное решения предполагаеой формы задачи также существует В частности запуск очередной инстанции CGI-приложений осуществляется на основе применения правил alias-инга и действенного перенаправления - которые могут быть сохранены в соответствующих условнвц блок конфигурационного файла с обеспечением занесения текущего PID процесса в специальную БД
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
GeeMTee
Отправлено: 17 Января, 2011 - 15:38:52
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2011 Откуда: Беларусь, Минск
Помог: 0 раз(а)
Мелкий пишет:
И при чём тут тогда PHP и сервер? Ройте в строну своего браузера, почему он не считает нужным отсылать запрос.
Странно.
Во всяком случае это не зависит от браузера.
Пробовал на разных браузерах.
Пробовал на разных хостингах.
На локальной машине у меня на Denwer не работает. На одном хостинге тоже не работало, а на другом работает.
Вот у меня поэтому и появилась мысль о том, что может быть разные настройки у этих серверов. (Добавление)
Ещё, кстати, заметил на примере DeepVarvar, что если открыть в разных вкладках браузера первую ссылку в разное время (например через 5 секунд), то ответ в обе вкладки приходит почему-то в одно и то же время (=
----- <?php echo 'Hello, World' ; ?>
JustUserR
Отправлено: 17 Января, 2011 - 16:06:52
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
GeeMTee пишет:
То ответ в обе вкладки приходит почему-то в одно и то же время
Возможной причиной осуществления получения синхронного ответа для предполагаемых запросов в целевому web-серверу - является использование браузером единого keep-alive соединения и обеспечения буферизации при формировании пакетов
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
GeeMTee
Отправлено: 17 Января, 2011 - 16:22:37
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2011 Откуда: Беларусь, Минск
Помог: 0 раз(а)
Буферизация тут скорее всего непричем.
Можно провести простой эксперимент.
Один запрос выполняется 20 секунд.
- запускаем запрос скрипт http://95[dot]84[dot]251[dot]194/test.php
- через секунд 15 запускаем повторно в другой вкладке
ответ приходит через 5 секунд, то есть это наш первый запрос.
если бы это была буферизация, то ответ приходил бы хотябы через 20 сек после запуска скрипта во второй вкладке.
так что это, если я правильно конечно понимаю, это скорее всего единое соединение, про которое JustUserR так же сказал. (Добавление)
Это если на Opera.
Но так не происходит в FireFox, например.
Так что много чего и от браузера зависит.
Жаль, конечно, что такая разносторонность проявляется
----- <?php echo 'Hello, World' ; ?>
DeepVarvar
Отправлено: 17 Января, 2011 - 16:29:35
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
GeeMTee если сервер видит что один и тот же запрос идет повторно с того же адреса (сокет занят) - то и не будет ветвить процесс. Это браузер рисует в обоих вкладках кеш из первой (у него тоже сокет занят)
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
GeeMTee пишет:
Во всяком случае это не зависит от браузера.
Браузер отправил запрос и ждёт ответа. Если он будет отсылать запросы не дожидаясь ответа то это ддос получится. Может ещё по другим причинам браузеры так написаны.
В тоге нужно использовать ajax.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
GeeMTee
Отправлено: 17 Января, 2011 - 17:11:58
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2011 Откуда: Беларусь, Минск
Помог: 0 раз(а)
OrmaJever пишет:
В тоге нужно использовать ajax.
У меня запрос к скрипту с паузой и делается через ajax.
----- <?php echo 'Hello, World' ; ?>
Maksim337
Отправлено: 17 Января, 2011 - 18:23:39
Частый гость
Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Читал начало темы. Автору скажу, что бывает такое, и причина не в пхп и сервере. Просто к примеру у меня опера так странно ведет себя, если гдето долго выполняеться запрос, то как бы подвисает вкладка(не опера а сама вкладка с адресом). Хз как обьяснить это, надо только показать...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.