11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous

Je cherche un moyen pratique de passer un ensemble de paramètres à un script JavaScript.

Depuis des années (qui remontent au millénaire précédent), je fais cela en générant un fichier data.js contenant quelque chose de ce genre

var Data = {param:value, ...};

en faisant en sorte de charger ce fichier data.js dans une balise

<script type="text/javascript" src="data.js"></script>

et en utilisant la variable "Data" dans les scripts contenus dans la page, ce qui marche depuis l'origine sous tous les navigateurs.

Question: quel serait le processus équivalent en utilisant un fichier data.json contenant la description de l'objet Data? Comment charger ce fichier? Comment interpréter son contenu?
La seule technique que j'ai trouvée décrite consiste à faire charger le fichier en asynchrone par AJAX, avec les variantes nécessaires pour tenir compte des anciennes versions de IE. Cela me semble inutilement compliqué, mais il y a peut être des choses plus simples pour obtenir le même résultat?
Même question pour un fichier data.xml contenant la description du même objet sous forme d'un fichier xml (ce que je trouverais plus pratique que json à titre personnel)

Merci de me faire part de votre expérience dans ce domaine.
Modifié par PapyJP (28 Nov 2015 - 10:16)
Administrateur
Peut-on utiliser un framework tel que jQuery ou est-ce du JavaScript vanilla ? Smiley cligne

Si les données sont dans une variable "texte" json, on peut passer par la méthode JSON.parse, mais ce n'est pas le cas le plus souple.

var json = '....le code json...';
var objet = JSON.parse(json);


Après il est vrai que c'est peut-être plus simple et conventionnel d'utiliser des appels AJAX et jsonp (json with padding).

Finalement, comparé à la méthode initiale (un fichier data.js avec des variables dedans) autant rester sur ce concept ?
Merci de ton conseil
C'est du JS de chez JS, je n'utilise pas jQuery dans ce site, qui n'est pas fortement interactif.
Le problème est de générer du html à partir d'une liste d'objets, plutôt que devoir faire manuellement du copier/coller dans des snippets. Je cherchais donc à voir s'il y avait une meilleure façon de faire que ma techno basique des années 1990.
Je vais en rester à ma vieille techno.