是否可以跨浏览器会话持久化javascript对象?

是否可以跨浏览器会话持久化javascript对象?,javascript,firefox,browser,Javascript,Firefox,Browser,如果存在解决方案,或者甚至可以将当前状态下网页的所有Javascript对象保存或序列化为文件,并将这些对象还原到同一网页的新浏览器实例中,是否有人知道 我有一个网页,其中包含各种Javascript对象,并希望有一种方法,采取“快照”的网页,并恢复到完全相同的状态在以后的时间。我已经能够序列化和还原页面的整个DOM树,但是Javascript对象没有被还原,因此页面看起来正确,但功能不正常。您应该将想要的变量保存到对象中,并使用JSON对其进行编码,然后将其保存到cookie中。要恢复它,只需

如果存在解决方案,或者甚至可以将当前状态下网页的所有Javascript对象保存或序列化为文件,并将这些对象还原到同一网页的新浏览器实例中,是否有人知道


我有一个网页,其中包含各种Javascript对象,并希望有一种方法,采取“快照”的网页,并恢复到完全相同的状态在以后的时间。我已经能够序列化和还原页面的整个DOM树,但是Javascript对象没有被还原,因此页面看起来正确,但功能不正常。

您应该将想要的变量保存到对象中,并使用JSON对其进行编码,然后将其保存到cookie中。要恢复它,只需从cookie中检索对象并使用JSON解析器。

您应该将想要的变量保存到对象中,并使用JSON对其进行编码,然后将其保存到cookie中。要恢复它,只需从Cookie中检索对象并使用JSON解析器。

除了其他人提到的Cookie之外,您还可以尝试使用HTML5的localStorage

这里还有一个存储抽象库,它将帮助您使用所有存储抽象库,并提供跨浏览器支持:


除了其他人提到的cookie之外,您还可以尝试使用HTML5的localStorage

这里还有一个存储抽象库,它将帮助您使用所有存储抽象库,并提供跨浏览器支持:


您可以使用JSON序列化对象,然后将它们存储在localStorage中。大多数浏览器都支持它,它可以存储比cookie更多的数据。也不会在每个请求头中发送。请看:以获取实现示例

您可以使用JSON序列化对象,然后将它们存储在localStorage中。大多数浏览器都支持它,它可以存储比cookie更多的数据。也不会在每个请求头中发送。请看:以获取实现示例

实际上,我也想过要走这条路,除了使用HTML5的本地存储而不是cookies。我正在使用的Javascript对象实际上是dojo小部件,我还没有找到将它们序列化或编码为JSON的方法。到目前为止,我尝试过的每个方法都会遇到“太多递归”的问题,因为对象包含函数和循环引用。JSON跳过函数,并且不适用于循环引用。另外,只编码应该保存的对象属性,如x和y,并跳过不需要的属性。对于我的多人游戏引擎(用AS3编写),我总是实现一个名为getNetworkTable的函数,该函数返回一个新对象,其中包含应发送给客户端的所有内容。对于您的问题,您可以使用类似的逻辑。顺便提一下,对于更紧凑的存储,我建议:,它的用法与JSON:
KeyValue.encode类似(obj,compress)
(记住传递true进行压缩)和
KeyValue.decode(str)
除了使用HTML5的localstorage而不是Cookie之外,我实际上也想过要走这条路。我使用的Javascript对象实际上是dojo小部件,我还没有找到将它们序列化或编码为JSON的方法。到目前为止,我尝试的每种方法都会遇到“太多的递归”问题,因为对象包含函数和循环引用。JSON跳过函数,并且它不适用于循环引用。此外,只编码应该保存的对象属性,如x和y,并跳过不需要的属性。对于我的多人游戏引擎(以AS3编写),我总是实现一个名为getNetworkTable的函数,该函数返回一个新对象,其中包含应发送给客户端的所有内容。您可以使用类似的逻辑解决您的问题。顺便说一句,对于更紧凑的存储,我建议:,它的用法与JSON:
KeyValue.encode(obj,compress)
(记住传递true进行压缩)和
KeyValue.decode(str)