Why setTimeout instead of setInterval?

As it stands, the actual interval is going to vary because it doesn't take into account the time used to poll.