Question

What are the advantages/disadvantages of Canvas vs. DOM in JavaScript game development?

What are advantages and disadvantages of creating games in 'pure' DOM as compared to using canvas?

 45  26660  45
1 Jan 1970

Solution

 19

canvas pros :

  1. could manipulate pixel and apply filter effect, so easy for image processing;
  2. very efficient for small size but hundreds of elements in the game
  3. many libraries for game could be found using canvas, such as box2dweb, and could make awesome games such as angry bird

cons:

  1. it's stateless, so you have to record the states of the elements in the canvas, and handle the hit test by yourself.
  2. low efficient for very large size but with one a few elements in the game
  3. great ability, great responsibility. the freedom to draw, brings in you have to charge of all the drawing staff. Fortunately, there are many libraries there, such as cocos2d-html5, IvanK.

DOM pros:

  1. rendering by the browser, so less error-prone;

cons:

  1. could do simple animation with CSS only, that makes the game not fluent;
  2. no good for manipulating hundreds of DOM elements;  
2012-11-29

Solution

 1

When you develop with Canvas you will have to use the GameLoop technique which is very painful because you will have to redraw all elements all the time.

When you develop with DOM you will be able to redraw only the objects that have been modified and will leave the hard work for the browser implementation.

If your game has a few modifications per frame then you can use the DOM, otherwise use the Canvas, please! It is so much faster!

2012-02-13