js-of-ocaml: des pages web en ocaml

Anne js-of-ocaml ocaml

Voilà un petit test d’utilisation de js-of-ocaml qui permet d’interfacer un programme ocaml avec une page web. L’exemple est vraiment basique et est composé de deux Hello world.

Voilà les fichiers sources et la page d’exemple.

Test1

Pour le premier exemple, le html contient simplement un container pour y mettre les objets créés :

<div id=test1></div>

Tout est ensuite créé à partir du programme ocaml en utilisant :

  • Dom_html.createTextarea pour créer la zone de texte,
  • Dom_html.createButton pour créer le bouton,
  • button##onclick <- Dom_html.handler f : pour lui ajouter une action,
  • et finalement Dom.appendChild pour ajouter ces éléments dans le container test1 ci-dessus que l’on retrouve à l’aide de Dom_html.document##getElementById.

Test2

Dans le second test, on crée les objets dans le html, mais on change leurs attributs dans le code ocaml.

Je ne sais pas vraiment quelle est la meilleure méthode. Ça dépend probablement des cas…

Compilation

Il faut d’abord compiler le code ocaml en bytecode :

$ ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml-ppx -linkpkg \
            -o gui.byte gui.ml

Puis générer de javascript :

$ js_of_ocaml gui.byte

Documentation

D’autres exemples sont fournis avec js-of-ocaml.

Pour lancer des calculs un peu lourd qui peuvent prendre du temps, il faut envisager d’utiliser une méthode plus compliquée, comme dans cet exemple, ou alors de mettre en place une communication client/serveur.

Voir aussi :