I believe this is a multi-page app.
Each of the footer will carry the same data-id to make them persistent. But regarding the canvas, one way I see is, that you create a Canvas outside the page divs and load/render it into each footer on page load. You will have to handle page unload and remove reference to this canvas from the page div. Note that the first page div is always in the DOM, so you will have to handle this situation too ...