2009-11-09 57 views
0

对于这个不精确的主题名称。大JavaScript对象的最佳做法

我很多次查询数据集,所以使用ajax请求会导致大量的http请求。

因此,我决定使用json编码方法来存储这个特定的数据集在我的javascript代码中。

我的PHP代码如下所示:(无json.parse)

echo 'var myDataset = ' . json_encode($myDataset) . ';' ; 

现在,这里是我的问题:下列哪些方法比较好?

一)

var myDataset = { '1' : { ... } , ... }; 

console.log (myDataset['1']); 

B)

var myDataset = function(id){ return ({ ... })[id] }; 

console.log (myDataset('1')); 

是否有内存或CPU的消耗有什么区别?

感谢

+0

这两种选择在做什么,具体是什么? – 2009-11-09 15:13:26

+0

第一种方法是使用命名数组,第二种方法是使用具有不同范围的匿名数组。 – jantimon 2009-11-09 15:15:10

回答

4

第一种方法(a)是最快的。在某些情况下使用。语法可以更快,即,myDataset.amyDataset['a']更快,这比function(a){return myDataset[a];}快。使用功能非常少见。在(b)中你和(a)完全一样,但是你有另一个函数调用,并且会在堆中增加一个新的闭包,这占用了空间和时间。

+0

您不能在数字键上使用点语法。 myDataset.1将失败,它需要myDataset [1]或['1']。 – JAL 2009-11-09 19:16:55

+0

你是正确的:)修正。 – Marius 2009-11-10 00:07:22

2

函数只增加了不必要的额外的开销。如果数据只是以对象属性的风格被访问,那么我会去a)。