canvas
pros :
- could manipulate pixel and apply filter effect, so easy for image processing;
- very efficient for small size but hundreds of elements in the game
- many libraries for game could be found using canvas, such as box2dweb, and could make awesome games such as angry bird
cons:
- it’s stateless, so you have to record the states of the elements in the canvas, and handle the hit test by yourself.
- low efficient for very large size but with one a few elements in the game
- 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:
- rendering by the browser, so less error-prone;
cons:
- could do simple animation with CSS only, that makes the game not fluent;
- no good for manipulating hundreds of DOM elements;