我有一个关于JS如何处理这类案件的问题。
莱伊说你有一个空物体:
var object = {};
内存中的XML作为字符串:
var xml = '<node1><node2>blah blah....';
现在,您希望将该XML与某些信息相关联,因此您可以执行以下操作:
object[xml] = 'extra info';
想象一下,你还有几个XML,因此该对象将具有N个属性,可能有长字符串作为键,其他对象作为值。
问题是JS如何通过键处理对这些属性的访问(这意味着知道XML),以及它的性能如何。它只是比较字符串的键的迭代还是还有其他事情发生?
谢谢!
编辑:为了澄清,这不是我想要做的事情,而是我使用的库(Moustache.js)正在做的事情,你可以看到here。我想知道这会如何影响我的应用程序的性能。
答案 0 :(得分:2)
每次需要添加密钥或查找值时,都可以对XML进行哈希处理。这会降低内存需求,但会在查看时增加处理时间。
var xml = '<node1><node2>blah blah....';
object[hash(xml)] = 'extra info';
var info = object[hash(xml)];
如果您需要能够再次拉出XML,例如通过循环键,您可以使用序列化技术来减小大小。
var xml = '<node1><node2>blah blah....';
object[serialize(xml)] = 'extra info';
for (var key in object) {
var originalXml = deserialize(key);
var info = object[key];
}