我正在存储服务器在HTML本身生成的网页的骨架快照,所以当我将Ajax请求发送回服务器时,服务器可以找出客户端看起来像什么的页面并发回适当的差异。
这个骨架基本上是一个树,每个节点代表一个组件(菜单栏,边栏,内容,评论,等等),它的子节点是它的子组件。
目前,我将其存储为Base64ed GZiped JSONed数据。作为纯JSON,它需要大约4000个字符,但编码需要~500。 (出于兴趣,python的Pickle需要大约3000个字符,但只能压缩到~2000)
所以我的问题是,我还能做些什么来压缩数据吗?任何比Base64更紧凑的Web安全数据格式?压缩比GZip更紧凑吗?将gzip函数的“级别”从6提高到9可以节省很少的(约20个字符)。
另一个问题是,这些数据应该放在哪里?目前,它只是位于某个隐藏输入字段的值中。它是否在某些输入的属性,一些其他标签的属性,作为带有display:div的div的内容是否重要?还是不值得关心?
答案 0 :(得分:1)
我没有看到将其存储在隐藏字段中的原因。我不建议将其存储在隐藏字段中。你可以使用Jquerys数据方法来存储json或者只是将它存储在一个正确定义的javascript变量中。
嗯,我不确定你采取什么方法来获得DIFF。您是将从客户端存储的数据发送回服务器,还是将数据从服务器发送到客户端,然后在客户端DIFF,这可能是更好的选择?
关于压缩,我不认为你应该把注意力集中在太多,因为你也需要花时间解压缩它。因此,目前要检查的是
compression + decompression < time taken for transfer
如果是这样,那么你应该压缩数据。