Я использую Firefox 3.6.6.
У меня есть PHP-скрипт с именем index.php
со следующим кодом:
<?php
sleep(20); die(time());
?>
Я открываю две вкладки браузера, копирую URLв каждом из них, а затем быстро нажмите Enter на каждой вкладке.Первая вкладка завершается чуть более 20 секунд.Вторая вкладка завершается всего за 40 секунд.
Я выполняю один и тот же эксперимент в IE, и оба сценария завершаются за одну секунду, около 20 секунд.
Это ожидаемое поведение?Фактический сценарий, который заставил меня проверить это, является синхронной процедурой.Я хочу, чтобы любой человек, пытавшийся выполнить его дважды, получил сообщение об ошибке, что процесс уже выполняется, вместо того, чтобы браузер сидел там и ждал, пока он не выполнит его во второй раз.
Если это как Firefoxработает, как он определяет, когда страница является дубликатом и что она должна ставить в очередь запросы, а не запускать их одновременно?
Я могу обмануть это, поместив ненужную строку GET в конец, например index.php
и index.php?JUNK=1
оба завершаются примерно за 20 секунд.