Sommaire

Avantages et inconvénients des deux technologies

Il y a deux grosses différences entre <canvas> et <svg>.

Lorsqu’un dessin est fait en utilisant <canvas>, l’image une fois créée n’est plus du tout accessible, c’est-à-dire que le navigateur affiche les pixels de la couleur voulue et à l’endroit voulu, mais ensuite il est impossible de programmer un pixel ou un rectangle. Le dessin une fois à l’écran est comme un grand JPG. Alors que, comme il a été vu à la section précédente, <svg> permet, une fois le dessin représenté à l’écran, d’interagir avec tous les éléments. Donc s’il y a besoin d’interactivité, <svg> est plus pratique. Il est possible de créer le même comportement avec <canvas>, mais dans ce cas il faudra détecter si la position de la souris en x est comprise entre deux valeurs, de même pour y, et ensuite exécuter une fonction. C’est donc possible mais moins pratique.

Par contre, s’il y a beaucoup d’éléments à afficher et qu’il faut que ce soit assez rapide, pour un jeu par exemple, <canvas> sera le plus intéressant car il est directement accessible par la carte graphique (le GPU : Graphics Processing Unit) qui sait surtout faire des calculs très rapidement pour l’affichage. Vous pouvez en voir un exemple à l’adresse ...