2010-07-14 127 views
3

我在Startpage上有一個詳細搜索表單,用戶有許多可用的搜索選項。搜索參數

什麼是保持搜索paramets用戶會話的最佳實踐。 哪些優點和缺點,如果把它們放在

  • URL
  • 會議
  • 餅乾

應該用什麼作爲最佳實踐。

回答

0

我想說一個會話是最好的選擇。如果您有多個頁面,則很可能需要保持一些全局狀態 - 另一種方法是用戶在轉到下一頁時重新提交所有以前的數據。

也就是說,你不能僅僅使用依賴於cookie的會話來存儲會話標識符,至少不會有一些額外的數據實際上在幾個頁面之間作爲隱藏字段或URL參數傳遞。

問題是,只有一個cookie,您將不會有網絡對話,您有一個全局cookie,它在瀏覽器中的所有選項卡/窗口之間共享。如果用戶打開一個新標籤並開始新的搜索,則會話cookie將被替換,而另一個標籤中的會話將會丟失。

因此,無論你:

  • 傳遞會話ID的URL,而不是使用一個Cookie(注意會話固定的,雖然)。
  • 包含標識對話的額外GET參數或隱藏字段。
1

我打算胖了點Cookie,因爲URL持久化會讓你的所有網址變得醜陋而且對於鏈接共享來說很差;不僅如此,有些設備可能會阻礙很長的網址(你說有很多選項)。無論如何,會話持久性都需要Cookie。或查詢字符串持久性來維護狀態(回到鏈接共享和醜陋的URL問題)。

用一個cookie可以存儲大量的數據(當然,在合理範圍內),並不會影響您的網址。

但是 - 如果搜索參數的持久性是你的應用是至關重要的,那麼你應該有一個後備檢測餅乾是否可用,和度假勝地,如果不爲URL的持久性。

1

最佳實踐真的取決於具體的方案(包括商業案例,編程語言等)。不過,這裏有一些高水平的優點/缺點。

URL優點:容易讀/寫
URL缺點:用戶可以輕鬆地操縱它們造成意想不到的結果,討厭的網址

會議利弊:應該是很容易讀/寫程序(取決於語言),不必擔心URL中的參數
會話缺點:佔用更多的內存(根據數據可能可以忽略不計)

Cookie的利弊:不佔用內存
Cookie的利弊:必須讀/寫文件時,用戶可以隨時刪除瀏覽器(1塊餅乾爲內共享的cookie(會話中),餅乾任何數量的會話)

+0

你對URL的看法聽起來不太好,因爲搜索查詢必須**總是**處理「服務器端」,否則即使有會話或cookie也可能是危險的,我想。 – BrunoLM 2010-07-14 14:43:58