Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
Стоит задача, постоянно, раз например в 40 секунд сверять последнюю полученную дату с датой из бд, и выводить последнюю полученную дату на экран, дату хранить в переменной. РЕализовал цилом вайл(тру нужные мне действия, но встала проблема, при вызове скрипта из консоли все нормально, раз в 40 секунд он выдает дату, однако при обращении к скрипту из веба, он уходит в бесконечный цикл и само собой ниче не показывает, в итоге апач по таймауту выдает 500ю ошибку. Мне хотелось бы чтоб при обращении к скрипту, он выдавал последнюю полученную дату и на этом выполнение скрипта завершалось. Это реально ? Код <?php $newdate = date('h:i:s'); function checknew($getdate) { global $newdate; $conn = oci_connect("tratata", "tralala", "//172.10.22.21:1521/info"); $sql = "select * from last_date"; $res = OCIParse($conn, $sql); oci_execute($res); $row = oci_fetch_row($res); if ($row[0] !== $getdate) $newdate = $row[0]; } while(true){ usleep(40000000); checknew($newdate); echo "<b>".$newdate."</b>"; } ?> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 07:14 |
|
||
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
Самое простое решение - организуйте запрос от клиента каждые 40 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 08:49 |
|
||
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
mussiСтоит задача, постоянно, раз например в 40 секунд сверять последнюю полученную дату с датой из бд, и выводить последнюю полученную дату на экран, дату хранить в переменной. РЕализовал цилом вайл(тру нужные мне действия, но встала проблема, при вызове скрипта из консоли все нормально, раз в 40 секунд он выдает дату, однако при обращении к скрипту из веба, он уходит в бесконечный цикл и само собой ниче не показывает, в итоге апач по таймауту выдает 500ю ошибку. Мне хотелось бы чтоб при обращении к скрипту, он выдавал последнюю полученную дату и на этом выполнение скрипта завершалось. Это реально ? Код <?php $newdate = date('h:i:s'); function checknew($getdate) { global $newdate; $conn = oci_connect("tratata", "tralala", "//172.10.22.21:1521/info"); $sql = "select * from last_date"; $res = OCIParse($conn, $sql); oci_execute($res); $row = oci_fetch_row($res); if ($row[0] !== $getdate) $newdate = $row[0]; } while(true){ usleep(40000000); checknew($newdate); echo "<b>".$newdate."</b>"; } ?> echo ''; flush(); отключить буферизацию в пхп, прокси сервере, отключить гзип сжатие. ЗЫ обычно это можно сделать специальнымы заголовками для прокси сервера, установкой настроек для пхп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 18:59 |
|
||
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
alex564657498765453отключить буферизацию в пхп, прокси сервере, отключить гзип сжатие.Как-то эти трахтибидохи не помогли, когда PHP работал на шаред-хостинге как fast-cgi (могу ошибаться, но точно не модуль апача). Вероятно, виною была еще буферизация вебсервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 23:10 |
|
||
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
Если у тебя клиенты на современных браузерах сидят и обновлять надо ОДНО значение, то гуглить "server-sent events" Если тебе надо отсылать пользователям что-то что не влезет в одну строку, или их браузеры не умеют HTML5, то все грустно и печально. Наиболее универсально и надежно: Делаешь страничку, выставляешь ей мету Refresh на 40 секунд и она будет перезапрашивать время как надо. Чуть сложнее - делаешь эти же перезапросы из js и обновляешь соответствующий элемент на страничке. Чтобы скрипт крутился на сервере и раз в 40 секунд отправлял в браузер новое значение - теоретически возможно, практически чрезвычайно сложно и делается по разному в разных браузерах. Наиболее удобно это делается для FF. Он понимает http заголовок multipart/x-mixed-replace. Для Chrome есть специальная фишка в SPDY, но сходу я ее задействовать не смог. IE как всегда - ничего не умеет. Остальные браузеры не проверял. Гуглить "http server push" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 01:25 |
|
||
|
РЕшить проблему с постоянным вызовом скрипта и вывод информации на экран, либо иным методо
|
|||
|---|---|---|---|
|
#18+
vklealex564657498765453отключить буферизацию в пхп, прокси сервере, отключить гзип сжатие.Как-то эти трахтибидохи не помогли, когда PHP работал на шаред-хостинге как fast-cgi (могу ошибаться, но точно не модуль апача). Вероятно, виною была еще буферизация вебсервера. гыгыгы нельзя казнить помиловать :) отключить буферизацию на ПХП и проксисервера так же в обоих отключить гзип сжатие, ...и подобные фильтры вывода которые могут буферизировать, просто по умолчанию гзип обычно только мешает. при отключении буферизации, надо ещо и запрещать временый файл - хз почему нджинкс продолжал буферизировать во временый файл при запрете буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 12:56 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38685075&tid=1462647]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 381ms |

| 0 / 0 |
