Почему при переходе на другую страницу, она не загружается до тех пор, пока не будут завершены ajax запросы на текущей странице?
Добрый вечер!
Суть проблемы такова:
Если находясь на странице (к примеру на главной), на которой выполняются длительные ajax-запросы (15-20 секунд) попытаться перейти на другую страницу, то она не будет загружена до тех пор, пока не завершатся ajax-запросы. Даже если попытаться открыть страницу в другом табе, она не будет загружена сразу.
Мне не понятно почему так проиходит и как обойти это ограничение.
Установил опытным путем, что во время выполнения эти запросов. страницы из другого браузера открываются.
Вопросы на которые я хотел был получить ответы или направления куда рыть.
1. Почему браузер ждет пока выполнятся ajax-запросы и только после их выполнения обрабатывает другие? Ведь одновременно к серверу возможно сделать несколько подключенией.
2. Возможно существую какие-то настройки php, apache для обхода этих ограничений?
Асинхронный запрос:
Запрос, ответ которого обрабатывается в любой момент выполнения скрипта или приложения называется асинхронным, т.к. является по своей сути отдельным потоком данных, не влияущий и не задерживающий другие процедуры.
Синхронный запрос:
Ну тут все понятно, синхронный запрос - обратный по смыслу асинхронного.
сессии лочат. если в с крипте есть session_start, то он открывает файл сессии, и пока не закроет, другой экземпляр этого скрипта или другой скрипт не сможет его открыть, поэтому запросы встают в очередь. добро пожаловать в организацию сессий своими руками. не рекомендую связываться с session_set_save_handler. самый нормальный вариант выдавать браузеру куку с ключем и по нему хранить отдельные независимые части данных сессии в базе, обязательно так чтоб при асинхронщине они не разрушились, это уже ваша радача. стандартные сессии как раз от этого и защищают своим тупняком