Bonjour,

j'en appel aux gouroux du JS...

j'essaye de deleguer (via un webWorker) un calcul D3 (https://d3js.org/ pour ceux qui ne connaissent pas). le calcul en soit se passe bien, le probleme est qu'il me genere un tableau d'objects. ces objets sont des MultiPolygon qui contiennent les coordonnes de millions de points (qui permettent de colorer des zones) voici a quoi ca ressemble :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[
{
  coordinates: [
    [x,y],
    [x,],// etc ... des milliers de fois
  ],
  type: "MultiPolygon",
  value: 0
},
{
  coordinates: [
    [x,y],
    [x,],// etc ... des millions de fois
  ],
  type: "MultiPolygon",
  value: 10
},
etc...
]
=> le renvoyer au main thread prend ~500ms ce qui me genere des warnings d'execution time, et plus genant : ca fait ramer la page

de plus, ayant plusieurs workers en parallele, j'ai l'impression que des que le 1er worker commence a "renvoyer sa donnee au main thread", celui-ci est "bloque le temps de la copie de l'object", ce qui retarde encore plus les suivants

voici mon code :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function generateCoor(params) {
    const {datas} = params;
    const contours = d3.contours().size([256, 256]);
    const cntrs = contours.thresholds(20)(datas.data);
    console.log(cntrs);
    postMessage({action:'generateCoor', datas:cntrs});
    // postMessage({action:'generateCoor', datas:cntrs}, [cntrs.buffer]); // idealement, ce que j'essaye de faire
}
je n'arrive pas a le passer dans le param de transfer developer.mozilla.org/en-US/docs/Glossary/Transferable_objects car il faudrait le convertir "object transferable"
et je ne sais pas comment faire ca :/

merci d'avance a ceux qui ont le temps de se pencher sur mon probleme