2012-01-05 53 views
3

我已經在線閱讀(在Google自己對網站優化技術的建議中),理想情況下使用Cookie應該保持在最低限度 - Cookie越少(並且內容越少)越好,因爲對頁面的每個HTTP請求在該域名下還將傳送cookie內容以及該請求。網站優化 - 使用Cookie或使用我們的數據庫?

我們的客戶有一個要求,允許訪問產品列表頁面上的「保存搜索」。例如,對於鞋子,我可以過濾「黑色鞋子」並保存搜索。然後,我可以將黑色鞋子過濾爲「皮革」,這樣我就可以得到「黑色皮鞋」的過濾結果,我也應該可以保存搜索結果。 因此,保存的搜索項目包括3個屬性:搜索名稱(由訪問者輸入),當前要保存的URL以及關於該頁面的額外更多描述性信息(取自頁面)。

由於訪問者可以存儲無限次搜索,因此我計劃使用一個數組並對其進行序列化/ base64編碼,以便它成爲一個字符串,在需要檢索/顯示時可以解碼。

如果我將它存儲在一個cookie中,並且訪問者保存了5個搜索,那麼cookie中有很多文本。你會如何建立這個?目前我可以看到2個選項:

1)堅持上面的方法,只使用cookie。爲此,你會: a)做上面的serialize/base64_encode? 或 b)您是否將多維數組「內爆」爲一個字符串?

OR

2)你會在數據庫中存儲所有這些信息,比如存儲在數據庫上面的序列化的字符串,然後分配一個唯一的ID(從數據庫)給該客戶,並存儲ID在cookie。這樣,cookie就是一個數字,我們從數據庫中檢索剩餘的數據。你會把這個分類爲更好的網站速度「優化」形式嗎?

非常感謝!

+0

你有沒有想過使用[localStorage](https://developer.mozilla.org/en/DOM/Storage)? – ManseUK 2012-01-05 09:10:52

回答

5

毫無疑問,將數據存儲在數據庫中,並將唯一的已保存ID存儲在cookie中。

除了通過減少HTTP請求數據來加速網頁,您可以將無限量的數據存儲在數據庫中,而Cookie只能存儲大約4K的數據。

您還將獲得用戶無法篡改cookie數據(如果全部存在ID)的附加好處。

+0

完美!非常感謝! – rishijd 2012-01-05 10:19:33