Добрый день! Не знаю, знакома ли данная тема участникам, если знакома, то супер! Пытаюсь реализовать поиск авиабилетов и отелей на сайте. Вот пример авиапоиска: https://www.aviasales.ru/
Алгоритм вкратце: На экране выводится форма с полями "Откуда", "Куда", "Даты" и еще несколько полей типа количества человек и т.д. При нажатии кнопки "Поиск" форма отправляется, сервер делает запрос агенству, которое в свою очередь отдает мне ответ с одним параметром: search_id. Далее, на странице я вывожу сообщение, что поиск запущен и с определенной периодичностью отправляю на сервер ajax-запрос с этим search_id, сервер в свою очередь шлет запрос с этим search_id агенству и то, по мере сбора предложений от разных "Продавцов", выдает мне постепенно предложения, которые я показываю пользователю. Один нюанс: все показанные предложения действительны в течении 15 минут, после этого времени они становятся не актуальны и поиск нужно запускать заново, но то, что агрегировано поиском, по идее, нужно хранить 15 минут (т.е. кешировать), т.к. пользователь может применить какой-то фильтр и предложения придется у пользователя обновить (из кеша).
Так вот, я не могу для себя решить, как реализовывать этот алгоритм в битриксе? По идее, нужно реализовать в виде компонента, например использовать bitrix:form.result.new (допиленный)... Но тут появляются сомнения... 1. Мне, во первых, не нужно сохранять результаты отправки формы (зачем?) 2. Я не пойму, пригодится ли здесь основное преимущество компонента - кеш? Ведь кеш нужен только одному челу и то на 15 минут. Тут у меня такой вопрос: после того, как человек "уйдет", что станет с этим кешем (даже если время его жизни будет 15 минут), он останется в системе или как-то будет удален битриксом по истечении 15 минут? (Я догадываюсь, что кеш в битриксе либо удаляется вручную, либо обновляется при повторном обращении... После 15 минут человек совершит новый поиск, с новым search_id и для этого запроса будет сформирован новый кеш... А старый останется?)
Помогите еще не совсем опытному пользователю решить эти вопросы... На данный момент все реализовано без всяких компонентов и с самопильным кешем...