Так вот мой тест установка:PHP обработки сессий, когда же клиент запрашивает тот же сценарий несколько раз сразу
session_start();
if(!isset($_SESSION['bahhhh']))
$_SESSION['bahhhh'] = 0;
$_SESSION['bahhhh']++;
sleep(5);
die('a'.$_SESSION['bahhhh']);
Что я ожидаю случиться, что каждый раз, когда я попал на страницу, он возвращает другой номер ,
Но если я использую несколько вкладок и обновляю их каждые 5 секунд после первого, все они возвращают одинаковый номер. (Это не кеширование на стороне клиента, поскольку 5-секундная задержка все еще очевидна.)
Почему это делается, и как я могу это исправить?
У него, похоже, такая же странная проблема кэширования с файлами и данными базы данных, и это мешает мне создать рабочий мьютекс, чтобы предотвратить запуск одного и того же кода более одного раза за раз.
Вот еще один, более простой пример:
echo microtime();
sleep(10);
Выполнить это 3 раза, каждые 2 секунды, и все три возвращают же микросекунду. WTF?
Как я уже сказал, я также использовал файлы и базы данных для этого подхода. Вот еще один тестовый скрипт, который не может себя вести должным образом: echo microtime(); сон (10); Если вы открываете это на нескольких вкладках, обновляйте их каждые 10 секунд друг от друга, когда-либо табуляция будет требовать, чтобы она была вызвана в тот же самый микросекунда (явная невозможность). – VexedPanda
Я не понимаю, какой носитель информации подходит для вашей проблемы. Я протестировал ваш скрипт на 5 вкладках, обновляя их каждые 10 секунд друг от друга и каждый раз получал разные результаты. Протестировано с последним 5.2.x на ubuntu 9.10. –