Задать вопрос
@ZhoZho

Почему браузер выдает ошибку при работе с долгим скриптом?

Скрипт загружен на удаленный сервер, скрипт работает около 2х минут.
У меня все нормально работает во всех браузерах.
У клиента во всех браузерах после определенного времени браузер выдает ошибку, что-то вроде "не получено никаких данных".
Что это может быть?
Пробовали настраивать timeout в IE, не помогло. Пробовали скачать последнюю оперу, тоже не помогло. Стоит так же последний Хром, собс-но тоже самое...

Вывод который я сделал, проблема в винде: у клиента win7, стоит касперский. У меня win xp, по семерке я не специалист, да и с такими проблемами впервые сталкиваюсь.

Загаловки в скрипте такие
<?php
ini_set("display_errors","On");
error_reporting(E_ALL ^ E_NOTICE);
ob_start();
session_start();
header("Content-type: text/html;charset=UTF-8");
header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Cache-Control: post-check=0, pre-check=0',false); 
header('Pragma: no-cache');
  • Вопрос задан
  • 2981 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
nazarpc
@nazarpc
Open Source enthusiast
Кроме таймаута в PHP попробуйте так:
set_time_limit (30); //Таймаут 30 секунд по-умолчанию, увеличьте до нужного
ob_implicit_flush(true); //Мгновенный сброс буфера

И посылайте время от времени пробелы, чтобы браузер видел, что что-то грузится.
Ответ написан
Комментировать
Я, конечно, не в курсе все ситуации, но ИМХО 2 минуты - это не дело вообще. Принимайте от клиента данные, записывайте в бд, обрабатывайте по крону, с клиента аяксом спрашивайте не ли решения, как только есть выводите его.
Ответ написан
Комментировать
DeFacto
@DeFacto
По-умолчанию выполнение скрипта 30 секунд
Попробуйте:
set_time_limit (60*3); // 3 мин
Ответ написан
Комментировать
@ZhoZho Автор вопроса
я пробовал посылать пробелы и делать ob_flush() (тоже самое что ob_implicit_flush)
тайм аут стоит большой в конфиге

да и самое главное - у меня работает, а у клиента нет. Тут дело явно не в скрипте и не в сервере.
Или я не прав?
Ответ написан
Комментировать
EnterSandman
@EnterSandman
Эникей
Для локализации проблемы возьмите еще одного человека из другого места
может клиент сидит за прокси?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы