私はAJAX履歴にKnockoutとSammyを使用する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でいくつかの答えを見つけましたが、元の文字列が返されませんでした。