我正在开发一个使用 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 将它发送到服务器时解压缩它?
我在使用 LZW 压缩的 stackoverflow 上找到了一些答案,但它并没有给我原来的字符串。