2009-11-09 6 views
0

sry pour ce nom de sujet imprécis. Je demande beaucoup de fois un jeu de données, donc l'utilisation de la requête ajax finirait par des tonnes de requêtes http. Pour cette raison, j'ai décidé d'utiliser la méthode de codage json pour stocker cet ensemble de données particulier dans mon code javascript.Meilleure pratique des gros objets javascript

Mon code php ressemble à ceci: (pas JSON.parse)

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

Maintenant, voici ma question: Laquelle des approches suivantes est mieux?

a)

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

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

b)

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

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

est-il une différence dans la consommation de mémoire ou CPU?

Merci

Jan

+0

Que font les deux options, en particulier? –

+0

La première approche utilise un tableau nommé le second utilise un tableau anonyme avec une portée différente. – jantimon

Répondre

4

La première méthode (a) est la plus rapide. Dans certaines situations, en utilisant le. La syntaxe peut être plus rapide, c'est-à-dire que myDataset.a est plus rapide que myDataset['a'], ce qui est beaucoup plus rapide que function(a){return myDataset[a];}. L'utilisation des fonctions est très rarement rapide. Dans (b) vous faites exactement la même chose que dans (a), mais vous avez un autre appel de fonction, et cela ajoutera une nouvelle fermeture au tas, ce qui prend de l'espace et du temps.

+0

Vous ne pouvez pas utiliser la syntaxe de point avec une clé numérique. myDataset.1 échouera, il doit être myDataset [1] ou ['1']. – JAL

+0

Droit vous êtes :) Fixé. – Marius

2

Une fonction n'ajoute inutilement surcharge supplémentaire. Si les données doivent juste être consultées dans la saveur des propriétés de l'objet, alors j'irais de l'avant a).

Questions connexes