0

我有一个很长(约 70,000 个字符)的字符串,我想插入到 URL 中。我需要在浏览器中实现后退,因此当 URL 更改时,我的应用程序会做出反应并更改其状态。

这是我用来从字符串生成哈希码的函数:

String.prototype.hashCode = function () {
            var hash = 0, i, char;
            if (this.length == 0) return hash;
            var l = this.length;
            for (i = 0; i < l; i++) {
                char = this.charCodeAt(i);
                hash = ((hash << 5) - hash) + char;
                hash |= 0; // Convert to 32bit integer
            }
            return hash;
        };

但是我怎样才能从它的哈希中取回我的字符串呢?

编辑:有没有其他方法可以压缩这么长的 URL?

4

3 回答 3

4

你不能。哈希是一种单向函数。560,000 位不能转换为 32 位并再次转换回来。

于 2013-08-26T12:39:35.857 回答
3

用魔法!(说不可能)

于 2013-08-26T12:38:28.363 回答
0

根据您的用例,也许您可​​以使用 URL 缩短服务来压缩您的 URL。看这个例子:https : //twitter.com/peterjaric/status/336941762838945792(我使用tinyurl来压缩长data-uris)。

直接链接到 tinyurl 页面:http ://tinyurl.com/peterjaric-page1

于 2014-02-27T09:45:19.913 回答