我正在建立一个网格,其中每个框都有一个不同的颜色值使用HTML和Javascript。
例如:一个5x5的网格,我需要跟踪25个值。我希望能够通过' grid‘参数发送网格的信息,这样当任何用户想要查看这个特定的网格时,他们都会看到完整绘制的网格。最初,URL应该是: www.mysite.com?grid=0123401234012340123401234理想情况下,参数应该少于25个字符。
如何将‘01234012340123401234012340123401234’转换为更小的字符串?最好是使用压缩算法还是只使用十进制到十六进制的转换?
发布于 2012-05-01 05:19:21
你可以使用更高的基数。大约30,例如:(123401234012340123401234).toString(30) --> "8i015nb02ib0c4ik"。请注意,要使其正常工作,123401234012340123401234必须是数字而不是字符串。
发布于 2012-05-01 05:29:50
如果每个单元格都包含一种颜色,这意味着每个单元格需要3个字节(如果包含alpha通道中的更改,则需要4个字节)。这意味着,如果使用十六进制编码,则每个单元格需要6个十六进制字符。
这并不是最优的,所以我建议使用等于26 + 26 + 10 = 62字符的a-zA-Z0-9。然后使用两个字符-和_,以获得完整的64个字符。使用十六进制,您需要6个字符来编码2^(24)个可能的值(如果您使用的是alpha通道,则需要2^32 )。
对于64位字符,每个单元格只需要4个字符。我提到这个的原因是因为a-zA-Z0-9 -和_是有效的url字符。
当然,所有这些都是假设你使用了所有的颜色。如果限制域,可以大幅减少每个单元格的字符数,但仍应使用相同的编码方案。
https://stackoverflow.com/questions/10390700
复制相似问题