2

我正在构建一个网格,其中每个框使用 HTML 和 Javascript 具有不同的颜色值。

示例:一个 5x5 网格,我有 25 个值要跟踪。我希望能够通过“网格”参数发送网格的信息,这样当任何用户想要查看这个特定的网格时,他们都会看到完全绘制的网格。最初,该 URL 为:www.mysite.com?grid=0123401234012340123401234 理想情况下,该参数应少于 25 个字符。

我将如何将 '0123401234012340123401234' 转换为更小的字符串?最好使用压缩算法还是仅使用十进制到十六进制转换?

4

2 回答 2

0

您可以使用更高的基础。像 30 之类的东西,例如:(123401234012340123401234).toString(30) --> "8i015nb02ib0c4ik". 请注意,要使其正常工作,123401234012340123401234必须是数字而不是字符串。

于 2012-04-30T21:19:21.037 回答
0

如果每个单元格都包含一种颜色,则意味着每个单元格需要 3 个字节(如果在 Alpha 通道中包含更改,则需要 4 个字节)。这意味着如果您以十六进制编码,则每个单元格需要 6 个十六进制字符。

这不是最优的,所以我建议使用a-zA-Z0-9which equals 26 + 26 + 10 = 62characters 。然后使用这两个字符 - 和 _ 来获得完整的 64 个字符。使用十六进制,您需要 6 个字符来编码 2^(24) 个可能的值(如果您使用的是 alpha 通道,则需要 2^32)。

使用 64 个基本字符,每个单元格只需要 4 个字符。我提到这一点的原因是因为 a-zA-Z0-9 - 和 _ 是有效的 url 字符。

当然,所有这些都是假设您使用所有颜色。如果限制域,则可以大幅减少每个单元格的字符数,但仍应使用相同的编码方案。

于 2012-04-30T21:29:50.407 回答