Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые коллеги! Прошу Вашей помощи. Имеется связка Windows 2012 + IIS 8 + PHP 5.4.26 + MS SQL 2008. Получаю данные из MS SQL через PHP и отрисовываю их на веб-морде. Все работает отлично, если объем данных небольшой. Если выборка содержит большой объем данных, то страница висит около минуты, а затем выдает пусто. Я перечитал в интернете возможные варианты решения. Я так понимаю, что срабатывает тайм-аут. Пробовал: 1) set_time_limit(36000); перед запросом. 2) в PHP.ini: 2.1) mssql.timeout в 600 установил 2.2) memory limit в 500М 2.3) max_execution_time в 3600. Ничего не помогает. Может люди добрые умные поможете, что мне еще нужно подкрутить, чтобы проблему понять и решить? p.s. Странно, почему-то в этой связке не отображаются ошибки выполнения, хотя display_errors в on ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 10:00 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
С этой проблемой разобрался. Оказалось, что данные сейчас получать можно. Но вот только напрямую. Я же получал их через ajax. Это он устраивал таймаут. Теперь вопрос как таймаут ему увеличить? Через $ajax.setOptions устанавливаю timeout.. ничего не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 11:09 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
определись таймаут чего у тебя срабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 13:56 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
готов поспорить, что таймаут обозревателя. :) вообще не надо надеятся что пользовательский софт увеличит таймаут... лучше уже передавать мусор для поддержания соединения. хотя счас можно использовать вебсокеты, для поддержания соединения. ну или хитрый план. клиент посылает типо файл на сервер, на сервере включена опция прогреса закачки, ном нужно лишь возможность отменить закачку. для клиента отмена закачки липовой - сигнал наличия результата, который запрашиваеться повторным аджаксом, а на сервере сохранён в данных сессии. тут уже можно и плясать вплане паралельных трудных запросах. ещо один вариант преагрегация данных в самой базе, чтобы выборка тяжолая стала лёгкой.(яж так понимаю долгий запрос изза групировки больших обьёмов, а не изза того что человеку ты предлагаешь пересмотреть 10 млн записей на вебморде) последнее сделал я для обработки групирующей функции на дереве. тригеры+ивент (это mysql, в mssql насколько я понимаю можно тригером менять туже таблицу где он сработал, тогда без ивента) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 14:32 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, за ответы. Дело в том, что у меня php возвращает данные в формате json. Если я напрямую получаю данные из php то они в формате json отображаются за тот же период. Если я получаю данные ajaxом, то он просто тупо прерывает запрос, не сообщая ошибки. За время примерно около 2-3 минут. Я пробовал играться с ajaxsetup и выставлял timeout 360000, но ему как-то по барабану, вот если ставишь 5000, тут он все понимает и прекрасно прерывает запрос. В том, то и дело, что данные нужно отобразить в таблицу. Они нужны в полном объеме. когда выборка небольшая они отображаются, но вот за большой диапазон времени, увы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 15:27 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
Может быть задачу вообще пересмотреть. У меня большой объем данных, которые нужно выгрузить в csv. Выгрузка в несколько тысяч строк. Я веб-мордой их получал. Пользователь смотрел их и нажимал кнопочку сохранить в csv. Я так понимаю, что сразу могу из php вернуть csv. Только вопрос куда вернуть, если не в ajax запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 16:12 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
content-disposition: attachment? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 16:31 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
Сорокин АндрейМожет быть задачу вообще пересмотреть. У меня большой объем данных, которые нужно выгрузить в csv. Выгрузка в несколько тысяч строк. Я веб-мордой их получал. Пользователь смотрел их и нажимал кнопочку сохранить в csv. Я так понимаю, что сразу могу из php вернуть csv. Только вопрос куда вернуть, если не в ajax запрос? в iframe :) нащёт json - тут ты можешь играться. щитать что тебе передаёться текст - набор джейсонов и первые для не прерывания конекта будут пустіе обьекты например. у тебя действительно вариантов куча. иди уже какимто одним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 18:13 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, Дак в том то и дело, что не браузер рвет соединение, а ajax. Если обратиться напрямую к php он нормально возвращает данные. А если через асинхронный ajax он прерывает запрос через пару минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2014, 07:34 |
|
||
|
IIS + php + ms sql
|
|||
|---|---|---|---|
|
#18+
Сделал, схема работает очень быстро. Итак. Создал форму, которую не видно. У формы по кнопке меняю action и передаю параметры в php. В самом php добавил заголовок: header('Content-type: application/vnd.ms-excel'); header("Content-Disposition: attachment; filename=table_analiz.csv"); header("Pragma: no-cache"); $buffer = $result."\r\n"; $buffer = mb_convert_encoding($buffer, "CP1251","UTF-8");//конвертируем UTF8 в CP1251 try{ echo $buffer; } catch(Exception $e){ } где result это моя таблица с разделителями. И вуаля - прекрасно работает. Может быть кому-то пригодится. Работает очень быстро. Спасибо всем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2014, 11:04 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38653332&tid=1462742]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 353ms |

| 0 / 0 |
