2010-01-09 44 views
14

我讀到有關cookies和其他相關客戶端的存儲選項,並閱讀有關使用window.name作爲排序的數據緩存:使用window.name在Web瀏覽器本地數據緩存

http://en.wikipedia.org/wiki/HTTP_cookie#window.name

儘管它確實有些讓它不那麼理想的事情 - 而且我不會用糖來包裝它,但它絕對是最真實的意義上的黑客 - 它看起來很有希望。我需要存儲大約10K的JSON作爲客戶端緩存,現在我將它與頁面一起發送出去,當我讀到這個時,它似乎可能實際上符合我的需求並減少流量。

我很好奇,看看是否有人執行此操作,並且您可能會給出什麼建議。陷阱?建議?瀏覽器之間的差異?某種使用情況會非常糟糕?

優點

  • 本地存儲
  • 可在基本上所有的瀏覽器支持JavaScript

缺點

  • 只支持串
  • XSS問題
  • window.name中毒
  • 信息泄露給其他網站

替代

+0

是10kb的壓縮JSON? –

+0

10K未經壓縮且比較冗長。 – Goyuix

回答

5

有許多方法可以存儲本地數據,Flash LSO,HTML 5本地存儲,cookies。谷歌齒輪。 看看PersistJS,這是一個js客戶端庫,它只是做它。

這篇文章在Ajaxian詳細說明一下。

2

這似乎是第一次在這裏執行:http://www.thomasfrank.se/sessionvars.html。但是,如果這種技術起飛了,我敢打賭,瀏覽器最終會因爲繼承XSS的漏洞而打擊它。

一個更長期的解決方案可能是:從HTML 5規範發展而來的http://en.wikipedia.org/wiki/DOM_storage(最大的缺點是IE 8之前瀏覽器沒有向後兼容性)。

+2

同意,作爲沒有明確記錄/標準化的東西,最好不要依賴...但可能是不支持更好的替代方案的瀏覽器有用的回退。 – bobince