Разрабатываю ajax поиск по сайту. Использую jquery, php, bitrix. Имитирую скорость работы кода через sleep(). Запрос на сервер производится при вводе запроса, по событию keyup(). На событии ввода установлена задержка ajax запроса, и его abort() - в случае если пользователь продолжает ввод. Работает получше чем если отправлять запрос сразу после события keyup(). Однако этот велосипед всё равно не решает проблему.
Здесь: синим - отмечено время работы скрипта, если ввести один символ(либо уложиться в задержку(2сек) до выполнения ajax запроса); зелёным - время работы скрипта в случае ели пользователь продолжает ввод после начала ajax запроса(срабатывает abort()); красным - время работы скрипта после окончания ввода если был xhr.abort(). Цифры говорят о том, что несмотря на abort на стороне клиента, сервер создаёт некую очередь для выполнения php-скрипта. Когда ввод не был ограничен задержками, скрипты работали вообще по очереди 2s,4s,6s... Я конечно понимаю что проблема в бэкенде. И скорее всего дело даже не в коде, а в том что для правильной работы такого поиска нужно использовать технологию вроде socket. Хотя мне кажется что это избыточно в данном случае. Подскажите кто что знает пожалуйста, пока я ещё глупостей не наделал)))
Сборка персонального компьютера от Artline: умный выбор для современных пользователей