Сессии

Тема в разделе "PHP", создана пользователем Denis5, 11 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Denis5

    Denis5 Постоялец

    Регистр.:
    2 сен 2008
    Сообщения:
    98
    Симпатии:
    23
    Запускаю 10-ти секундный скрипт.
    Открываю новое окно, запускаю 1 секундный скрипт.
    Пока первый не завершится, второй не начинает выполняться.
    Почему?
     
  2. fastpars

    fastpars Создатель

    Регистр.:
    7 апр 2010
    Сообщения:
    23
    Симпатии:
    7
    Попробуй 10-й скрипт запустить в одном браузере а 1-ы в другом .
    И результат сюда тащи.
     
  3. Denis5

    Denis5 Постоялец

    Регистр.:
    2 сен 2008
    Сообщения:
    98
    Симпатии:
    23
    Так работает.

    У меня через яваскрипт уходит на выполнение 1-й скрипт(по времени долгий)
    Потом вторым чекаю процесс выполнения первого через переменные в сессии.
    А не выходит, второй виснет, пока первый не выполниться.

    Что делать? ума не приложу.
     
  4. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    А что мешает через ajax запустить?
     
  5. Abliganto

    Abliganto Постоялец

    Регистр.:
    30 ноя 2009
    Сообщения:
    111
    Симпатии:
    46
    Это "фича" браузера такая, ничего не поделаешь.

    Теперь по поводу сессий. Если второй скрипт изменит что-то в сессии, первый (долгий) перезапишет весь результат работы 2го.

    В данном случае +1 к аяксу.
     
  6. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    737
    Симпатии:
    263
    PHP:
    ignore_user_abort(true);
    и отфоркаться от основного скрипта, т.е. чтоб 10-секундный скрипт тут же вернул результат в бровзер и типо завершился, выдав напоследок ключ, по которому можно проверять его состояние (другим скриптом). А основную работу выполнять в другом процессе, который с stdio и бровзером вообще никак не связан, но к которому может обратиться скрипт проверки состояния. Это если есть необходимость к нему обращаться, обычно проще посмотреть в файл или базу - и так определить, работает ли тот основной скрипт или уже отработал.
     
  7. Stern87

    Stern87 Создатель

    Регистр.:
    8 дек 2007
    Сообщения:
    15
    Симпатии:
    1
    если вы используете в скрипте session_start(), то пока скрипт не завершится, либо не встретит session_write_close() - он не будет выполнять следующий от вас запрос.
     
    venetu нравится это.
Статус темы:
Закрыта.