Bonjour j'ai quelque difficulté à bien comprendre le fonctionnement de requireJS.
Je suis actuellement sur une version de développement d'un projet et en chargeant les différents modules et libs dont j'ai besoin je me rend compte qu'il assez compliqué d'arrivé à un résultat stable:
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 require([ './common' ], function () { log('Require & common loaded'); var moduleCollection = ['api', 'layout'], allElements = document.getElementsByTagName('script'); require(moduleCollection, function () { moduleCollection = []; [].slice.call(allElements).forEach(function (item) { if (item.getAttribute('data-page') !== null) { moduleCollection.push(item.getAttribute('data-page')); } }); require(moduleCollection); }); });
Le code ci dessus me renvoi toujours une erreur "mismatch" impossible de comprendre pourquoi ni le comment du pourquoi, cependant et c'est maintenant que je trouve ça drôle:
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
20
21
22
23
24
25
26
27 require([ './common' ], function () { log('Require & common loaded'); var moduleCollection = ['api', 'layout'], allElements = document.getElementsByTagName('script'); require(moduleCollection, function () { moduleCollection = []; [].slice.call(allElements).forEach(function (item) { if (item.getAttribute('data-page') !== null) { moduleCollection.push(item.getAttribute('data-page')); } }); while(true) { try { requirejs(moduleCollection); break; } catch (error) { console.log(error); continue; } } }); });
Je passe une a deux fois dans le catch mais à la deuxième ou troisième fois mon module se charge bien. J'ai bien compris le côté asynchrone de requireJS en revanche l'identification des modules et le contexte d’exécution est toujours un mystère, ajouter à cela jQuery + des plugins + une api perso + les scripts de chaque page cela me donne un bon gros tas de soucis à gérer pour des problèmes qui n'apparaissent qu'une fois sur deux, sans aucun critère de ressemblance, bref sans comprendre ce qu'il se passe derrière.
D'avance merci pour votre aide
Partager