2011-07-31 47 views
2

我正在存储网页的骨架快照,服务器生成的HTML本身,所以当我发送Ajax请求回到服务器,服务器可以找出什么该客户端看起来像并发送适当的差异。如何/在哪里存储数据在客户端的HTML

这个框架基本上是一个Tree,其中每个节点代表一个组件(菜单栏,边栏,内容,评论,无论什么),它是子组件。

目前,我将它存储为Base64ed GZiped JSONed数据。作为纯JSON,大约需要4000个字符,但编码需要大约500个字符。 (出于兴趣,蟒蛇的腌菜需要约3000个字符,但只压缩到2000)

所以我的问题是,还有什么我可以做的关键数据了?任何比Base64更紧凑的网页安全数据格式?任何压缩比GZip更紧凑?将gzip函数的“级别”从6提高到9导致很少(〜20个字节)的节省。

而另一个问题是,这些数据应该放在哪里?目前它只是坐在隐藏的输入字段的值处。无论是在某些输入的属性,还是某些其他标记的属性,作为带显示的div的内容,它都无所谓:hidden?还是不值得关心?

回答

1

我没有看到将其存储在隐藏字段中的原因。我wouldnt建议存储在隐藏的领域。您可以使用Jquerys数据方法来存储json,或者将它存储在正确范围的javascript变量中。

那么我不知道你采取什么办法来获得DIFF。您是否将从客户端存储的数据发送回服务器,或者您是否将数据从服务器发送到客户端,然后在客户端将其DIFF,这可能是更好的选择?

关于压缩我不认为你应该专注于它太多因为你也需要花时间去解压它。因此,目前的事情要检查将是

compression + decompression < time taken for transfer 

如果是这样的话,那么你应该可能压缩数据。

+0

我在服务器上差异并发送差异到客户端。我可以做到这一点,但我不喜欢JavaScript,并希望保持我的编码最低= D。我会检查压缩所需的时间。也许我应该把它写入一个JavaScript变量。 –

+0

是的,我会建议相同.. – Baz1nga