cakephp: отправлять вывод в браузер при выполнении процесса / функции - PullRequest
0 голосов
/ 22 июня 2010

Как мне сделать индикатор выполнения в cakephp?

и другой связанный с этим вопрос:

скажем, для цикла, как я могу отправлять вывод в браузер для каждой итерации..... в cakephp .... Я пытался использовать функцию setflash, но у меня это не сработало ....

Мое главное намерение при попытках вышеупомянутых вещей заключается в том, что я хочу отправить какой-то вывод в браузеркаждые несколько секунд, пока выполняется моя функция, иначе я перехожу к проблеме тайм-аута ...

Спасибо ...

Ответы [ 2 ]

7 голосов
/ 22 июня 2010

Вы не можете этого сделать. Возвращенная веб-страница является статичной, вы не можете изменить ее, отправив. В чистом PHP вы можете отправлять части выходных данных до того, как получите все выходные данные, так что вы можете получить что-то вроде for($i=0;;) echo $i++;, но вы не можете сделать это в Cake, потому что вам нужно полностью отобразить View перед вставкой его в макет. Индикатор выполнения в (чистом) HTML невозможен, потому что, как сказано, вы не можете изменить отправленный HTML-ответ.

Однако вы можете задействовать JavaScript: вы можете вернуть HTML-страницу с JS, которая использует вызовы AJAX для запроса состояния / процента действия, а затем устанавливает индикатор выполнения в HTML соответственно. Это может сделать последнее (изменить HTML), потому что JS запускается в браузере клиентов после извлечения страницы.

1 голос
/ 23 июня 2010

Вы не можете сделать это, используя PHP (или CakePHP) самостоятельно.Вы можете сделать это, используя AJAX и PHP (или CakePHP), но объяснить, что выходит за рамки этого форумаGoogle "AJAX PHP Progress" и найдите время, чтобы узнать, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...