我正在研究一个使用Knockout和Sammy获取AJAX历史的AJAX应用程序。该应用程序使用一组过滤器,排序选项和分页,让用户搜索35000条记录。
目前,URL散列的格式如下:
http://domain/Search/{SearchTerms}/PageIndex
例如:
http://localhost/search/#0%20-%205%C4%80square%20meter/1
在服务器上解析搜索词,使其与可用的过滤器相匹配。我不能使用Id或者其他东西,因为过滤器集每天都在重建(当后端数据更新时),并且唯一保持不变的是描述。
这是构建哈希的javascript代码:
var hash = '';
ko.utils.arrayForEach(self.SelectedItems(), function (item) {
hash = hash + item.Description + ' ';
});
hash = encodeURIComponent($.trim(hash));
hash = hash + '/' + self.HuidigePagina();
location.hash = hash;
问题是加入所有项目描述可能会变得非常长。有没有办法可以压缩这个部分,然后在我用javascript发送到服务器时将其解压缩?
我在stackoverflow上找到了一些使用LZW压缩的答案,但它没有给我原来的字符串。