Есть ли общее имя для этого метода «блокировки сеанса»? - PullRequest
2 голосов
/ 01 мая 2011

На одной из моих страниц пользователи ставят в очередь условия поиска, которые необходимо запрашивать из стороннего API.Поскольку они строят очередь, мой сайт выполняет запросы в фоновом режиме (через ajax), поэтому я могу кэшировать ответы, экономя их время при отправке.Я сохраняю переменную сеанса $ _SESSION ['isloading'] как истину во время выполнения фоновых запросов, и ложь, когда они выполняются.

Когда они отправляются, страница результатов ожидает $ _SESSION['isloading'], чтобы быть ложным, прежде чем запрашивать кэш для результата.Между тем им показано колесо прогресса.

Существует ли название для этого метода использования сеанса для локальной "блокировки" пользователя перед переходом к следующему шагу в коде?Я сам придумал этот подход и задавался вопросом, является ли оно распространенным (или хорошим) решением этой проблемы и используется ли оно где-то еще.

Ответы [ 3 ]

1 голос
/ 03 мая 2011

Помещение в $ _SESSION будет напрасной тратой.Был там, сделал это, и это не сработало.

Вам будет намного лучше, если вы предоставите свою «строку поискового запроса» в виде переменной $ _GET для своего XHR (маркетологи называют это - Ajax).

0 голосов
/ 03 мая 2011

Я спросил об этом в IRC (Hat-Tip to ## php на freenode), и они предложили мне просто сделать форму поиска и результаты поиска одной страницей. Затем, когда они завершат ввод своих поисков, представление изменится, а не будет отправлено на следующую страницу. Это устранит необходимость отслеживания состояния «isloading». Мне кажется, это лучший подход, есть ли проблемы с ним?

0 голосов
/ 03 мая 2011

В верхней части моей головы это звучит немного похоже на то, как некоторые старые программы для форумов выполняют поиск по форуму в фоновом режиме, а видимая страница обновляется до тех пор, пока поиск по фону не будет завершен.

Я не думаю, что есть имя для этого;Я также полностью убежден, что это отличное решение.Как указывал stevecomrie, вы столкнетесь с трудностями с параллелизмом (если только имя переменной сеанса не является уникальным для каждого поискового запроса).

Я бы вместо этого рекомендовал XmlHttpRequest (как указывает Тереско, это не совсемназывается «AJAX», тьфу!) и вы можете справиться с «ожиданием» довольно просто с помощью Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...