“String”类型的IndexedDB键是否可以是url路径?

时间:2015-10-10 06:28:07

标签: javascript html5 indexeddb

我想使用url作为在IndexedDB中存储数据的密钥。我认为这是一个有效的密钥(来自阅读:http://www.w3.org/TR/IndexedDB/#key-construct),但并非100%肯定。是否有以下有效密钥?

//Examples of storing keys
objectStore.put( data, "http://example.com/some-url" );
objectStore.put( data, "http://example.com/some-url#s?e=t%20something&%20=%@" );
objectStore.put( data, "/some-url-relative-url/audio.mp3" );
objectStore.put( data, "/images/test.jpg" );

如果字符串是字符串,那么字符中是否存在限制?

1 个答案:

答案 0 :(得分:3)

除非您遇到内存限制或浏览器错误,否则所有字符串都可以是键。

这包括:

"" // empty string
"abc\u0000def" // embedded null
"\uD834\uDD1E" // UTF-16 surrogate pair
"\uFFFF" // non-character
"\uD800" // lone UTF-16 surrogate

是的,字符串化的URL是有效的密钥。当然,它们将被比较为字符串(16位代码单元的序列),因此您可能需要/需要首先执行URL规范化,具体取决于您的用例。