2

que je suis les exemples sur http://adambom.github.io/parallel.js/Comment paralléliser d3.js ou cubism.js

Exemple:

var p = new Parallel([0, 1, 2, 3, 4, 5, 6]), 
     log = function() { console.log(arguments); }; 

function fib(n) { 
    return n < 2 ? 1 : fib(n - 1) + fib(n - 2); 
}; 

p.map(fib).then(log) 

fonctionne à merveille, maintenant je veux appliquer le même concept sur des objets d3.

J'ai une boucle qui boucle une liste de noms:

for name in names by 1 
    // set some stuff 
    context = [....] 
    metrics = [....] 

    d3.select("#"+name) 
    .selectAll(".horizon") 
    .data(metrics).enter() 
    .insert("div", ".bottom") 
    .attr("class", "horizon") 
    .call context.horizon() 

Si je mets le contenu de la boucle dans la fonction du contenu de fib il se plaint de « variable non définie d3 » ... mais j'ai l'impression de manquer le concept.

Répondre

0

Vous ne pouvez pas paralléliser la chaîne. Il n'y a rien de spécial à propos de d3 ici - lorsque vous enchaînez les appels, c'est-à-dire foo(a).bar(b).foobar(c) cela signifie que foo() renvoie un objet avec la méthode bar() qui renvoie à son tour l'objet avec la méthode foobar(). Cela signifie essentiellement que vous ne pouvez pas exécuter foo() et bar() en parallèle, car ce dernier nécessite des résultats de la première.

+0

Oui, mais que faire Si je génère cet événement entier enchaîné 40 fois, je ne peux pas le faire encore parce que je manipule le DOM comme je l'ai lu hier. – nevermind

+0

Parallel.js utilise des web workers, qui ne peuvent pas, à partir de maintenant, accéder au DOM – kikap

0

Je ne peux pas paralléliser d3.select

mais j'ai pu paralléliser que la partie qui construit les paramètres du tableau, mais que presque rien fait --- 1 seconde moins?

Je vais poster ma solution si je trouve quelque chose