Url哈希片段格式

时间:2013-03-28 10:42:56

标签: javascript jquery url

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

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

#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;
}
带有json对象的

2-哈希片段

#{"a":"foo","b":"bar"}

然后使用

获取对象
$.parseJSON(document.location.hash.substring(1))

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

1 个答案:

答案 0 :(得分:2)

最佳做法是单独保留片段ID。使用the history api更改实际查询字符串。

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

此:

  • 在使用Ajax数据立即替换大块数据之前,无需加载基页(以前用于使Twitter Web应用程序使用起来非常糟糕,直到他们转移到历史API)。
  • 使搜索引擎和其他非JS客户端的链接友好