Javascript 是否可以使用类型为“的IndexedDB键;“字符串”;是url路径吗?

Javascript 是否可以使用类型为“的IndexedDB键;“字符串”;是url路径吗?,javascript,html,indexeddb,Javascript,Html,Indexeddb,我想使用URL作为键在IndexedDB中存储数据。我认为这是一个有效的关键(从阅读此:),但不是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(

我想使用URL作为键在IndexedDB中存储数据。我认为这是一个有效的关键(从阅读此:),但不是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" );

如果是字符串,则对键中可以包含的字符有限制吗?

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

这包括:

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

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

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

这包括:

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

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

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

这包括:

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

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

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

这包括:

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

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

根据我的说法,没有这样的限制,您可以使用任何有效的Unicode字符,但我建议您先放置,然后尝试检索,如果检索成功,那么你可以肯定一切都会成功。@hagrawal“根据我”是什么意思?根据你的经验?还是你帮我写了说明书?谢谢“按照我的意思”-意思是AFAIK。不,不,Np!为什么不试试从Unicode补充平面输入字符,如果它有效,那么就意味着它有效。可以尝试和测试的东西不需要问题@hagrawal我会在每一个有indexeddb的浏览器上测试它,因为他们并不是每个人都实现相同的功能,没有这样的限制,你可以使用任何有效的Unicode字符,但我建议你先放置然后再尝试检索,如果检索成功,那么你可以肯定一切都会成功。@hagrawal“根据我”是什么意思?根据你的经验?还是你帮我写了说明书?谢谢“按照我的意思”-意思是AFAIK。不,不,Np!为什么不试试从Unicode补充平面输入字符,如果它有效,那么就意味着它有效。可以尝试和测试的东西不需要问题@hagrawal我会在每一个有indexeddb的浏览器上测试它,因为他们并不是每个人都实现相同的功能,没有这样的限制,你可以使用任何有效的Unicode字符,但我建议你先放置然后再尝试检索,如果检索成功,那么你可以肯定一切都会成功。@hagrawal“根据我”是什么意思?根据你的经验?还是你帮我写了说明书?谢谢“按照我的意思”-意思是AFAIK。不,不,Np!为什么不试试从Unicode补充平面输入字符,如果它有效,那么就意味着它有效。可以尝试和测试的东西不需要问题@hagrawal我会在每一个有indexeddb的浏览器上测试它,因为他们并不是每个人都实现相同的功能,没有这样的限制,你可以使用任何有效的Unicode字符,但我建议你先放置然后再尝试检索,如果检索成功,那么你可以肯定一切都会成功。@hagrawal“根据我”是什么意思?根据你的经验?还是你帮我写了说明书?谢谢“按照我的意思”-意思是AFAIK。不,不,Np!为什么不试试从Unicode补充平面输入字符,如果它有效,那么就意味着它有效。可以尝试和测试的东西不需要问题@hagrawal我将通过这一方式在每一个拥有indexeddb的浏览器上测试它,因为它们的实现并不完全相同