[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправить страницу клиенту и продолжить...
oddberry
какая есть команда в php - отправить страницу пользователю (закрыть соединение) и продолжить выполнение скрипта.

то есть к примеру - я получил данные из бд, я хочу отправить страницу пользователю, и после этого я делаю манипуляции, из-за которых задерживать пользователя я не хочу - то есть к примеру поместить страницу в кэш, или выполнить какие то манипуляции со счётчиками, обновить какие то данные и тп. то есть хочется ускорить выдачу данных
Игорь_Vasinsky
http://php.net/manual/ru/function.ignore-user-abort.php

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
oddberry
то, что вы мне кинули - это игнорировать отключение клиента,
не понимаю как я это могу использовать?

мне нужно что то типа flush() с отключением соединения

//-----------------------

и после того что я прочёл возникает вопрос - насчёт отключения клиента

в каких случаях скрипт будет прерываться -
как я понял скрипт может прерваться к примеру если воспользоваться flush() (если эта функция сработает на сервере), сервер не может соединиться с клиентом, и скрипт прерывается.
или же скрипт может прерваться вообще в любой момент? то есть это может привести к тому, что скрипт не закончит полноценное формирование каких то данных, то есть к примеру пользователь размещает объявление, а скрипт не успел обновить все необходимые таблицы БД?
Игорь_Vasinsky
Цитата
или же скрипт может прерваться вообще в любой момент?

в то)
exit();

Цитата

к примеру пользователь размещает объявление, а скрипт не успел обновить все необходимые таблицы БД?


как так. скрипт выолняется сверху вниз..

ты про аякс говоришь? так там тоже можно ослеживать успех, сбой, готовность

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (oddberry @ 31.05.2013 - 21:14)
я хочу отправить страницу пользователю, и после этого я делаю манипуляции, из-за которых задерживать пользователя я не хочу

не выйдет
Цитата (oddberry @ 31.05.2013 - 21:43)
и после того что я прочёл возникает вопрос - насчёт отключения клиента

в каких случаях скрипт будет прерываться -
как я понял скрипт может прерваться к примеру если воспользоваться flush()

функция flush не разрывает соединение с клиентом, в php вообще отсутствует функционал, для прерывания соединения с клиентом, без остановки работы скрипта. flush просто сбрасывает буфер в поток, и всё. Она не запрещает дальнейшую работу, и вывод контента. Кстати смысла в ней вообще нет, если на фронт энде задействовано gzip сжатие. Есть только один способ - запустить бэкграунд процесс, но делать этого по чем зря, не советую, это лишняя нагрузка на сервер.
sergeiss
oddberry, ты не понимаешь принцип работы веб-сервера!
Сервер получает запрос, формирует страницу, отправляет её клиенту. Всё. Он больше на связан с клиентом.
Если клиенту (браузеру) нужны данные, то он делает новый запрос. Да, это может быть запрос-ответ без полного обновления страницы (аякс), но всё равно проходит полный цикл работы с веб-страницей "подключение-запрос-обработка-ответ-данные-отключение".

Поэтому, чтобы сделать так, как ты хочешь... Надо сначала загрузить начальную страницу. Затем послать аякс-запрос. Он что-то обработает на сервере, вернет данные браузеру.
Важно: промежуточные данные, нужные для дальнейшей работы, надо сохранить в сессии на сервере!
После получения ответа ты можешь отправить запрос на продолжение обработки. Сервер возьмет данные из сессии и продолжит обработку. Опять вернет данные по окончании обработки.
Ну, и так далее: можно по такому "циклу" хоть сутками работать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.