Javascript Url哈希片段格式

Javascript Url哈希片段格式,javascript,jquery,url,Javascript,Jquery,Url,我需要在散列片段中保存UI状态,我尝试了两种不同的方法: 1-具有查询字符串格式的哈希片段 #a=foo&b=bar 然后使用自定义函数获取一个值: getParam: function (parameter) { if(document.location.hash !== "") { var param = document.location.hash.substring(1).split("&"); for(var i in para

我需要在散列片段中保存UI状态,我尝试了两种不同的方法:

1-具有查询字符串格式的哈希片段

#a=foo&b=bar
然后使用自定义函数获取一个值:

getParam: function (parameter) {
    if(document.location.hash !== "") {
        var param = document.location.hash.substring(1).split("&");
        for(var i in param) {
            var keyValue = param[i].split('=');
            if(keyValue.length === 2 && keyValue[0] === parameter) {
                return $.trim(keyValue[1]);
            }
        }
    }
    return null;
}
2-带有json对象的哈希片段

#{"a":"foo","b":"bar"}
然后用

$.parseJSON(document.location.hash.substring(1))

最好的方法是什么?散列片段格式是否有特定的约定

最好的做法是不使用片段id。用于更改实际查询字符串

然后,当从头开始请求页面时,将其完全构建在服务器上

这:

  • 避免了在立即用Ajax数据替换大块的基本页面之前加载基本页面的需要(在推特web应用程序移动到history api之前,这会使其使用起来很糟糕)
  • 使链接对搜索引擎和其他非JS客户端友好