Polling with execution limit

by Krzysztof Safjanowski

HTML

<div id="polling"></div>

JavaScript

function resultShow(id) {
    var container = document.getElementById(id);

    this.attachResult = function attachResult(text) {
        container.appendChild(document.createTextNode(text));
    };
}


function pollingAjax(result) {
    var ajaxCounter = 0;

    ajaxMock();

    return function () {
        ajaxMock();
    };

    function ajaxMock() {
        result.attachResult('.');

        ajaxCounter++;

        if (ajaxCounter >= 3) {
            clearInterval(pollingAjax.interval);
            result.attachResult(' complete');
        }
    }
}

var polling = new pollingAjax(new resultShow('polling'));

pollingAjax.interval = setInterval(polling, 2000);