Use requestAnimationFrame. Draw only visible map cells.
Redraw player image. Render player sprite at proper location.