batch redraws with setTimeout