<script>

/////// >>>>>>>>>>>>>>> requestAnimFrame

var frames = 30; // FRAMES PER SECOND

window.requestAnimFrame = function(){
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / frames);
}
);
}();

/////// <<<<<<<<<<<<<<<<<

var canvas, context

var counter;

function init() {
canvas = document.getElementById('myCanvas');
context = canvas.getContext('2d');
counter = 0;
animloop();
}

function animloop(){
counter ++;
document.getElementById('display').innerHTML = counter;
// AT THE END OF THE FUNCTION CALL THIS FUNCTION AGAIN USING requestAnimFrame
requestAnimFrame(animloop);
}

</script>