如何使用JSON或其他序列化库序列化函数?

时间:2010-05-08 21:03:20

标签: javascript json function

我正在尝试创建一个程序,使用javascript编写一个简单的文本冒险,然后我可以在我的博客上发布并在我的iphone上运行。我遇到了一个问题。我试图这样做,以便我的程序将它的状态保存到cookie中,使用JSON将其转换为字符串然后将其发布到cookie中然后我意识到我无法序列化我的项目对象上的函数。

我试图让它成为一个关联数组,其中包含用作关键字的名称,以及作为值的函数。这很有效,直到我尝试序列化它。我了解到我可以通过将主体存储到字符串中并使用转义字符作为双引号来为函数创建类似JSON的序列化,但由于某种原因,我无法使用函数将我的cookie作为存储的字符串。

当我发布cookie然后尝试将其取回时,字符串不在那里。如果您想查看我的代码和整个项目都在我的网站上,尽管我的完整代码包括项目操作尚未发布。

2 个答案:

答案 0 :(得分:0)

Cookie的大小通常限制在4K左右 - 您可能达到了这个限制。你是对的,因为JSON只会序列化你对象的属性 - 而不是任何函数。你可以有一个类似你提到的数组(键/函数名),然后使用eval()来运行该函数。

答案 1 :(得分:0)

如果我理解你的问题,以下内容会有所帮助: 您可以将状态信息发布到Web服务器,并根据HTTP GET在同一Web服务器上提供来自服务器的相同信息。此类HTTP GET请求将缓存在客户端上。因此,您将在客户端(在本地缓存中)和服务器上保存双方所需的信息。对本地缓存的大小没有限制。确切地说,您可以在Web浏览器中设置此限制。你怎么看?