Skip to main content

Hello everyone,

I have a question regarding best practices for using the <ods-dataset-context> tag. I've seen many examples where the entire HTML code is nested within a context tag (containing all the contexts), and I've seen other examples where there are several context tags that nest only the tags using the relevant context. Are there any advantages or disadvantages (especially in terms of performance in a dashboard with many different contexts) to using one practice over the other?

I hope my question is clear, and thank you in advance for your responses.

 

Best,

David

Auto-translation 🪄

Bonjour à tous, J'ai une question concernant les bonnes pratiques d'utilisation de la balise . J'ai vu de nombreux exemples où l'intégralité du code HTML est imbriquée dans une balise de contexte (contenant tous les contextes), et j'ai vu d'autres exemples où il existe plusieurs balises de contexte qui imbriquent uniquement les balises utilisant le contexte pertinent. Y a-t-il des avantages ou des inconvénients (notamment en termes de performances dans un tableau de bord avec de nombreux contextes différents) à utiliser une pratique plutôt qu'une autre ? J'espère que ma question est claire et je vous remercie d'avance pour vos réponses. Cordialement, David

Hi,

 

From my personal experience (over hundreds of pages/dashboards) you must as much as you can when it’s possible declare all your contexts into the same ods-dataset-context element. 

 

It will drastically simplify your code and ability to reuse and modify it afterward.

 

You can see here https://codelibrary.opendatasoft.com/generators/comparison-generator/ one of the most (or even the most) complexe example of code from the Code Library. 

 

You can see how the code is structured :

  • First in the big main ng-init you set all the variables and data structures you’ll need in your page
  • Then, around line ~280 you’ll see all the contexts declaration

 

Regarding the performance, it’s the same, you have one API call per dataset. If you declare through several ods-dataset-context, one or several contexts on the same dataset, it won’t have any impact on performances. 

 

 

Another good example is this pretty complex project : https://data.ameli.fr/pages/pathologies/

I encourage you to have a look to the code (right click → inspect → in the Element tab, search for “ods-dataset-context”) and you’ll see a ton of contexts declared into the same element

 

Auto-translation 🪄

Bonjour, D'après mon expérience personnelle (sur des centaines de pages/tableaux de bord), vous devez autant que possible déclarer tous vos contextes dans le même élément ods-dataset-context.  Cela simplifiera considérablement votre code et votre capacité à le réutiliser et à le modifier par la suite. Vous pouvez voir ici https://codelibrary.opendatasoft.com/generators/comparison-generator/ l'un des exemples de code les plus (ou même le plus) complexes de la bibliothèque de codes.  Vous pouvez voir comment le code est structuré :Tout d'abord, dans le gros ng-init principal, vous définissez toutes les variables et structures de données dont vous aurez besoin dans votre page. Ensuite, vers la ligne ~280, vous verrez toutes les déclarations de contextes. Concernant les performances, c'est la même chose, vous avez un appel d'API par ensemble de données. Si vous déclarez via plusieurs ods-dataset-context, un ou plusieurs contextes sur le même jeu de données, cela n'aura aucun impact sur les performances.    Un autre bon exemple est ce projet assez complexe : https://data.ameli.fr/pages/pathologies/Je vous encourage à jeter un œil au code

Thank you for your quick and relevant response.

Auto-translation 🪄

Merci pour votre réponse rapide et pertinente.

Reply