是否可以序列化Javascript对象变量并存储到cookie中?

时间:2010-11-04 01:02:46

标签: javascript

是否可以序列化Javascript对象变量并存储到cookie中?或者还有其他方法可以完成同样的事情吗?

3 个答案:

答案 0 :(得分:6)

如果这些对象不敏感(即,您不关心用户是否修改它们),那么只要您的对象足够小而不会导致问题,就可以将它们序列化为cookie。

如果您的cookie是敏感的(您需要依赖它们达到完整性级别)或者您具有大型结构,那么为什么不考虑将这些序列化对象存储在存储在服务器上的持久会话中。然后,您可以使用Cookie作为密钥或ID来了解访问者返回时要还原的会话。通过这种方式,序列化对象的大小以及它们是否“适合”在cookie中不再相关。

如果你不挑剔用户修改内容,但确实需要足够的空间(虽然可能不适用于所有浏览器),另一种可能性是创建HTML5“本地数据库”或客户端存储。通过这种方式,您既可以消除对cookie大小的关注,也可以消除您自己的服务器端数据库不断增长的大小。这可能是您希望为每个用户存储大量数据的网站的最佳选择,但您不确定它们是否会再次返回。您可以随时使用旧版浏览器的服务器端存储(见上文)。

这是一个特别好的HTML5本地数据库入门教程:http://blog.darkcrimson.com/2010/05/local-databases/

我希望这是有用的&祝你好运!

答案 1 :(得分:4)

我不明白为什么不符合cookie的长度限制。我会将序列化对象转换成说Base64。

你正在解决什么问题?

答案 2 :(得分:2)

是的,如果结果字符串不超过cookie大小的限制(4KB),则可能