在保存Cookie时,您真的需要对JSON.stringify进行编码吗?
我测试了它,IE8 +和chrome工作正常,没有编码(encodeURIComponent)实际数据。编码问题是限制为4096字节,JSON中的许多项目将被编码,导致字节大小增加。
我会保存这样的变量,看起来真的不需要编码。 (只有345个字节)
{
"s":
"p":"1",
"c":"nameofsomething",
"i":"56456,54115,878451,651451,65156,878941,5165165,54545,22115,874845",
"t":"1407515818100",
"gcid":"CPOa-ZTbpL4CFWdo7AodTnQA3A",
"k":"54154154"
}
当我提取cookie时,一切都会被保留下来。我知道最佳做法是进行编码,但保存字节并保持cookie干净会更好。
由于编码,编码看起来像(545字节)大约增加了200
%7B%22s%22%3A%7B%22p%22%3A%221%22%2C%22c%22%3A%22nameofsomething%22%2C%22i%22%3A%2256456%2C54115%2C878451%2C651451%2C65156%2C878941%2C5165165%2C54545%2C22115%2C874845%22%2C%22t%22%3A%221407515818100%22%2C%22gcid%22%3A%22CPOa-ZTbpL4CFWdo7AodTnQA3A%22%2C%22k%22%3A%2254154154%22%7D%2C%22o%22%3A%7B%7D%7D
答案 0 :(得分:2)
你在这里问两件不同的事情:
JSON编码
如果您尝试存储简单数据,则不需要JSON编码。您可以毫无困难地在Cookie中手动存储key
和value
对。饼干非常擅长。
另一方面,如果你有一个像你的例子那样的复杂对象,那么JSON编码是最好的方法。如果您不使用JSON编码,则需要一些其他方式来处理key/value
编码,当您最终处理测试对象时,您刚刚创建了一个糟糕的版本JSON。因此,使用JSON并保存令人头疼的问题。
<强> encodeURIComponent方法强>
不需要。 Cookie不是URI,也不是URI组件。
其他强>
JSON编码将处理需要完成的任何unicode编码。
马上就好了,我很难想象需要做的任何编码都不会由JSON处理。