我正在寻找在URL哈希参数中存储大量数据而不超过URL字符限制。用于URL哈希参数的Javascript字符串压缩
是否有任何常规的方式来压缩字符串长度,然后可以在另一个页面加载解码?
我见过LZW encoding用于类似的解决方案,但是会使用特殊字符吗?
我正在寻找在URL哈希参数中存储大量数据而不超过URL字符限制。用于URL哈希参数的Javascript字符串压缩
是否有任何常规的方式来压缩字符串长度,然后可以在另一个页面加载解码?
我见过LZW encoding用于类似的解决方案,但是会使用特殊字符吗?
LZW编码技术上工程;您只需要将LZW编码的二进制转换为URL安全的base64,以便输出不包含特殊字符。 Here's an MDN article on base64 in JavaScript; base64的URL安全变体仅用-
和/
替换+
和_
。当然,除非你想存储的数据是非常可压缩的,否则你不太可能通过这么做来减少字符串的大小。
如果你有一个数据库,另一种解决方案是存储未压缩的字符串,给它一个id并在散列中使用它。客户端然后可以通过AJAX请求检索初始参数。这是一个额外的往返,但它可能是可以接受的。国家可以分享客户吗?如果不是,你可以将事件存储在'localStorage'中。 – plalx 2015-02-09 16:14:44
@plalx谢谢,状态可以在客户端之间共享,但不幸的是需求没有后端存储。 – Curt 2015-02-09 16:27:04
编码算法的问题在于,您不能确定永远不会超出限制,除非您知道所有可能的组合并且暗含静态数据。我相信潜在的压缩级别也将取决于您实际编码的内容。例如。 gzip在处理重复片段方面看起来相当不错。 – plalx 2015-02-09 16:27:45