|
|
1
2
将对象转换为字符串并在数据库中存储字符串对性能没有好处。使用json.stringify将对象转换为字符串 只有 添加到必须发生的步骤数。我强烈建议不要这样做,甚至不尝试这样做,也不要试图超越C++中的索引XDB实现。 DeloDeDB序列化发生在C++中,而不是JS。JSON.StrugI化发生在JS中,而不是C++。大多数情况下,发生在JS中的任何事情都比C ++慢了一个数量级。
js字符串是js对象。如果我没记错的话,您不能将字符串作为对象存储在indexeddb中,因为它本身是一个函数对象,而不是一个普通对象。说明这一点的另一种方法是考虑对象类型层次结构。一切都从
函数不能序列化,正如我在回答您的另一个问题时所解释的。
当您使用
对象文字
语法,这仅仅是
而不是尝试将字符串直接存储在indexeddb中,因为它本身是一个对象(
结构化克隆算法不久前被重命名。我忘了,现在是序列化算法或类似“可转移”算法的东西。
在indexeddb中存储对象时(例如
这个C++序列化不一定要从对象到字符串或对象到字符串,而必须是某种优化的字节格式。在C++领域中,区分字符串和其他值类型有时不太有用,因为字符串仅仅是字节的任意表示。因此,当我们讨论C++中的序列化时,我们只讨论改变一组抽象字节的表示。很像c中的struct只是一个字节序列的表示,这些字节被分成几个部分。在某种意义上,在C++中,字符串可以理解为零成本抽象,取决于它是如何使用的。事实上,以一种或另一种类型调用某组字节只会澄清应该对这些字节调用哪些操作,以及这些字节应该如何表示某些内容。从某种意义上说,这里的序列化实际上可能只是用不同的名称调用相同的字节序列,而根本不执行任何处理!事实上,如果您曾经在文本编辑器中打开过二进制文件,或者打开过错误编码(或解释编码)的网页,您可能已经看到了这一点。所以,如果你说的是性能上的不同,那么,比较0步操作和n步操作会得到一个明显的答案。 也就是说,C++序列化可能会最终发生转换为字符串,谁知道,你不应该知道,这取决于索引XDB C++实现来决定这一点,并将它抽象出来并隐藏它的复杂性。在高效存储一堆字节方面还有其他所有类型的问题,这些字节的长度远远超出了序列化性能。 总而言之,序列化在C++中的含义与JSON.StrugI化在JavaScript中的含义不同。在js中将一个值转换成一个字符串只会减慢程序的速度。让indexeddb来照顾你。 |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |