Использование событий прогресса XHR для мониторинга запросов PHP / MySQL - PullRequest
1 голос
/ 11 октября 2011

Я сделал индикатор выполнения, чтобы показать, насколько «прогресс» выполнен запросом XHR, но кажется, что он работает только с тем методом тестирования, который я использовал, который получил контент URL, а затем закодировал его в JSON - это было «GET»method.

function get_album_percent(token) {
var loadingDlg = document.getElementById('loadingDlg'),
    loadingDlg_title = document.getElementById('loadingDlg_title'),
    loadingDlg_bar = document.getElementById('loadingDlg_bar'),
    xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    console.log(xhr.readyState);
    if (xhr.readyState == 1) {
        if (!loadingDlg.classList.contains('open')) {
            loadingDlg.classList.add('open');
            loadingDlg.classList.remove('close');
        } else {
            loadingDlg.classList.add('close');
            loadingDlg.classList.remove('open');
        }
        loadingDlg_title.innerHTML = 'Getting Facebook albums...';
    }
    if (xhr.readyState == 3) {
        console.log('3', xhr);
        xhr.onprogress = function(event) {
            console.log('onloadstart, response', event);
            var percent = Math.round((event.loaded/event.total) * 100) + '%';
            loadingDlg_bar.style.width = percent;
        }
    }
}
xhr.open('POST', 'http://mydomain.co.uk/api/facebook/get/userinfo.php?token=' + token);
xhr.send(null);
}

Однако, когда я использую метод, который я хотел первоначально использовать - который получал альбомы пользователей Facebook, фотографии и теги из параметра URL, а затем вставлял их в 3 таблицы с использованием PHP / MySQL - всеслучается, что готовится состояние готовности 1, затем 2, 3 и 4 запускаются в конце, после того, как произошел xhr.

Есть ли причина для этого?Есть какие-нибудь решения?

Спасибо, Адам С.

...