2016-11-17 6 views
0

После запроса this question кто-то указал на правильное направление , не имея возможности выполнить второй скрипт вообще, если он уже запущен.PHP - Несколько сценариев сразу (AJAX)

Я обычно делаю приложения, которые полагаются на выполнения AJAX звонки на PHP страниц, а сегодня я обнаружил, что пытается писать на файл с fwrite() на PHP скрипт и пытается читать тот же файл с fread() (в получить обратную связь с процессом) на другом вызове AJAX закончилось в , второй скрипт исполнялся только тогда, когда первый уже закончил.

Даже попытка повторить простую «привет» (echo "hello"; exit;) ничего не покажет на странице, пока первый скрипт не будет завершен.

Итак, я спрашиваю: это обычная конфигурация? Это то же самое при каждой установке PHP по умолчанию? Является ли какая-то конфигурация на php.ini, что я могу изменить?

Или это связано с сервером (в моем случае, Microsoft IIS 10)? Может ли кто-то пролить свет на , как можно выполнить несколько сценариев PHP на разных звонках AJAX сразу (или до того, как остальные закончат)?

Я знаю, что не даю много информации о настройках моего контекста, но я не знаю ни того, где искать.

Спасибо всем за ваше время и помощь!

+0

Первым процессом может быть блокировка записи в файле, попробуйте открыть файл в режиме только для чтения во втором процессе. –

+0

Все эти аспекты отбрасываются. Я попытался открыть файл в режиме чтения, режиме добавления, режиме записи и т. Д. Без везения. Более того, тот факт, что «echo» hello »;' не работает, не имеет ничего общего с блокировкой файла. В любом случае, спасибо за ваш комментарий! – Unapedra

+1

Как сказал Луис, это может быть блокировка записи в файле, который вы пытаетесь изменить. Однако, если вы используете сеансы, которые используют файлы (а не базу данных) или фреймворк, который использует сеансы на основе файлов, то это может также быть результатом блокировки сеанса. Мои деньги были бы на ответ Луиса, хотя, вероятно, вы, вероятно, должны использовать базу данных, а не файл, если у вас нет веских оснований. –

ответ

1

Как сказал Луис, это может быть блокировка записи в файле, который вы пытаетесь изменить. Однако, если вы используете сеансы, которые используют файлы (а не базу данных) или фреймворк, который использует сеансы на основе файлов, то это может также быть результатом блокировки сеанса. Мои деньги были бы на ответ Луиса, хотя, вероятно, вы, вероятно, должны использовать базу данных, а не файл, если у вас нет веских оснований.

Смежные вопросы