2012-03-17 2 views
1

Я реализую мгновенный поиск. Поскольку сеть не сохраняет порядок запросов в порядке ответов, я бы не хотел, чтобы (n ранее) искали «francis» для перезаписывания (более позднего) поиска «francis haart».Как своевременно сопоставить ответ с соответствующим запросом?

Я думал о временном штампе пользовательского HTTP-заголовка в запросе, затем извлечении его и последующем его повторении в ответ. (Я использую ajax для запросов и django для ответов.)

Какова наилучшая практика для временной отметки ответа (например, результатов поиска) в соответствии с запросом (например, поисковым запросом)?

ответ

1

Простым способом (для меня) было бы добавить случайно сформированный идентификатор запроса, который будет сохранен как переменная JS в браузере, а также отправлен прямо назад с сервера вместе с результатами. Если идентификатор ответа равен сохраненному идентификатору, отобразите его. Если нет, это означает, что с тех пор был сделан другой запрос, и вы можете отбросить тот, который только что вернулся.

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

+0

Я установил параметр запроса, так что, возможно, я был слишком сложным. но я думал, что это больше похоже на мета-данные и, следовательно, должно быть в заголовке. –

Смежные вопросы