- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть AJAX запрос, кажется все просто. Но в теле скрипта, который исполняется по AJAX запросу содержится функция file_get_contents. Сам ответ при ее запуске получить тоже достаточно долго. Заменил на CURL и понял наконец, что оказывается исполнения file_get_contents и CURL скрипт который запускается по AJAX запросу - просто не ждет....
Ну то есть проблема в том, что не хочет такого длительного ожидания AJAX скрипт и вдруг мне возвращает пустой CURL, при этом я сижу после и смотрю как спрабатывает скрипт просто по FTP вижу как он раскладывает файлы. А у меня уже минут 2-3 как на руках пустой результат, с якобы не успешным завершением... Что делать, как заставить его подождать все эти 3-5 минут?
Вроде помню писал ранее, даже с загрузкой в %, хотя все равно все они более чем 20 секунд не исполнялись. А тут вот такая ситуация, нужно еще с сервера ответа дождаться и иногда очень длительного в принципе....
Ваш скрипт прерывается через 30 секунд, так штоле? Тогда увеличьте максимально допустимое время работы скрипта - либо в настройках PHP, либо непосредственно в скрипте.
Sitealert, Да нет, AJAX скрипт который еще не выполнен до конца прекращает ожидать и выдает мне полупустой ответ, как будто бы все готово ... AJAX не ждет выполнения CURL, при том что он там двойной.
Полного выполнения последнего CURL - нет полного ожидания.
Значит, Вы так скрипт написали, что он выдаёт ответ раньше времени.
[Да нет, AJAX скрипт который еще не выполнен до конца прекращает ожидать и выдает мне полупустой ответ, как будто бы все готово
Думаю не совсем так. Скорее всего PHP прекращает ждать и отдает пустой результат. Где можно посмотреть пациента, что бы мог сказать более точно?
infant, Да нигде - это сама себе панелька, чтобы проще было что-то делать... Не понял, а чего он ждет сам php? Он как раз выполняет скрипт как нужно - целиком.
Браузер после длительного ожидания сбрасывает соединение, не могу назвать точную цифру но вроде 30 сек.
А у меня уже минут 2-3 как на руках пустой результат, с якобы не успешным завершением...
Вообще за это время ожидания он должен был уже выбросить исключение с ошибкой "timeout".
Нужен некий механизм создания задачи и ожидания ее завершения. Через асинхронные запросы создаем задачу и далее в цикле проверяем ее статус завершения/ошибки далее вывод результата.
Вообще за это время ожидания он должен был уже выбросить исключение с ошибкой "timeout".
Так вот в php этого нету, там set_time_limit стоит. Проблема в том, что на момент ответа для AJAX - последний CURL пустой. То есть на самом деле он сработал, но в ответе который получил AJAX - его нет, а ответ уже есть. И не с ошибкой, а просто как готовый и якобы нормальный ответ...
AJAX может ждать очень долго, без пациента что либо сказать сложно.
Проверить что возвращает сервер (PHP) просто, нажимаем F12 и смотрим ответ во вкладке запросов.
Если JS начал выполнятся до ответа AJAX запроса, это можно увидеть.
Браузер после длительного ожидания сбрасывает соединение
Но в этом случае всё выглядит именно как ошибка, а не как нормальный ответ.
infant, вот ответ сервера, кажется это вообще он...
"Fri, 25 Aug 2017 12:02:35 GMT"
Server
"Apache/2.4.10 (Debian)"
Vary
"Accept-Encoding"
Content-Encoding
"gzip"
Content-Length
"90"
Keep-Alive
"timeout=5, max=97"
Connection
"Keep-Alive"
Content-Type
"text/html; charset=utf-8"