我正在寻找(尽可能简单)压缩我正在创建的网址的方法。
我正在从一个对象生成它,并且该对象只有2个具有对象值的项目,其中包含2个项目,并且它已经变得非常大了。这是我的参考资料:
For getting the url :
StateString.decode($location.search().state);
For setting it :
$location.search({state: StateString.encode(myObject)});
Statestring刚刚运行 -
return {
encode: function(data) {
return encodeURIComponent(JSON.stringify(data));
},
decode: function(searchString) {
if(searchString){
return JSON.parse(decodeURIComponent(searchString));
}else{
return
}
}
只需设置角度工厂即可重复使用。
所以 - 我正在寻找用url字符串稍微减轻负载的方法,它现在很长,即使只有几个内部。不必依赖另一个js库就好了(但如果必须的话,我必须这样做)。寻找有关采取此措施的任何见解/提示。谢谢你的阅读!
答案 0 :(得分:1)
您可以创建一个数组,其中包含所有可能的状态,并使用索引作为键。要使它更小,您可以在url参数中使用索引的基本36版本。因此,对于1个字符(0-z),您可以有35个状态,对于2个字符(0-zz),您可以拥有1295个状态。
var encodingMap = {"{lorem:'ipsum','mykey':'myval'}","{'faefag':'veabvb'}"];
return {
encode: function(data) {
return encodeURIComponent(encodeMap.indexOf(JSON.stringify(data)).toString(36));
},
decode: function(searchString) {
if(searchString){
return JSON.parse(decodeURIComponent(decodeMap[parseInt(searchString,32)]));
}else{
return
}
}