2012-03-17 33 views
1

我正在實施即時搜索。由於網絡沒有按照響應的順序保存請求的順序,因此我不希望先前搜索「francis」來覆蓋(後來)搜索「francis haart」。如何與相關聯的請求一致地爲響應添加時間戳?

我正在考慮在請求中加上一個自定義http頭,然後解壓並將它編織迴響應中。 (我對請求使用ajax,對於響應使用django。)

對請求(例如搜索查詢)進行時間戳響應(例如搜索結果)的最佳做法是什麼?

回答

1

最簡單的方法是爲請求添加一個隨機生成的id,它將作爲一個JS變量存儲在瀏覽器中,並且也會直接從服務器和結果一起發回。如果響應ID等於存儲的ID,則顯示它。如果不是,這意味着另一個請求已經被創建,你可以丟棄剛剛返回的請求。

當用戶鍵入時,中間結果集將不會顯示,因爲在最後一個請求返回前會輸入下一個字母,但這可能實際上對您有利,因爲持續閃爍的結果可能會看起來凌亂。

+0

我在查詢參數上解決了問題,所以也許我是過於複雜的事情。但我認爲它更像是「元數據」,因此應該放在標題中。 – 2012-03-18 20:43:08