【发布时间】:2011-09-18 09:07:39
【问题描述】:
Cookie 非常棒,因为在 website.com 中写入的值可以在 www.website.com 中使用(www 被视为无 www 的 sudomain)。缺点是所有 cookie 值都与每个 HTTP 请求一起发送到服务器。所以我正在寻找一种本地存储机制,该机制可用于 Javascript,它可以跨子域工作并且不会传输到服务器。这样的机制存在吗? LocalStorage 不能跨子域工作,Flash Cookies 不能在 iPhone 上工作。
【问题讨论】:
-
您需要多少存储空间?如果它不是很多,并且您使用的是 PRG 模式(POST、REDIRECT、GET),只需将您需要的数据保存到 GET 上的页面本身,然后从页面发布您需要的任何数据。
-
你在寻找怎样的跨域?你需要支持哪些不支持LocalStorage的浏览器?
-
@Rovert Harvey:这是大量数据:偏好、登录状态、最近的活动。我只是讨厌向服务器查询非关键数据,所以我喜欢将其存储在本地。 /// @James Black:到目前为止,我只需要 www 和 non-www 共享相同的值。我认为当用户在 非 www 上做某事,然后转到 www 并发现他们的所有偏好都被清除时,这是一种糟糕的用户体验。我的目标是升级现代浏览器以停止使用 cookie,但在旧浏览器不支持这种新存储机制时回退到 cookie。这样我的服务器受到的影响就更少了
-
我通常让服务器强制 non-www 到 www (反之亦然),所以这不会是一个问题。但是,对于其他场景,我可以看到跨子域访问本地存储的价值,所以这个问题仍然是一个有用的问题。
标签: javascript cookies local-storage