用于AJAX(J)书签的location.hash中的JSON?

时间:2010-02-19 16:20:33

标签: javascript jquery ajax json

我正在使用 jQuery 构建一个AJAJ (带有JSON的AJAX) webapp,我希望我的用户能够为保存所有内容的页面添加书签为应用程序的某个部分设置选择。我有很多需要保存的数据,所以我认为JSON可能是保存它的最好方法,将它放入location.hash

话虽如此,从location.hash获取数据字符串并将其转换回JSON对象的最佳方法是什么,以便它可以在Javascript中使用?

这就是我对JSON对象的想法

http://example.com/index.html#json={'s': '2010-02-19', 'array':[1,2,3,4]}

罗兰建议我放弃json=,成功削减5个角色。所以完整的位置将是:

http://example.com/index.html#{'s': '2010-02-19', 'array':[1,2,3,4]}

3 个答案:

答案 0 :(得分:3)

假设您具有JSON支持(本机或包含JSON解析脚本)的示例

var obj, text = document.location.hash;
if (text){
    obj = JSON.parse(text);
}

如果浏览器没有本机JSON支持,您可以从http://www.json.org/js.html获取脚本或使用某些框架支持的变体(如YUI的http://developer.yahoo.com/yui/json/

答案 1 :(得分:2)

你说'相当多'。你可以说得更详细点吗?请记住,您的网址限制为2083个字符。

就个人而言,无论如何,我都会谨慎地将这种东西存储在命令行中。你会很难处理URL编码/解码,人们可以获得你的数据结构的想法,并可能破解URL中的JSON字符串。

答案 2 :(得分:2)

查看history plugin,它可能与您的需求相关