Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2016, 20:20
Аватар для woojin
Аспирант
Отправить личное сообщение для woojin Посмотреть профиль Найти все сообщения от woojin
 
Регистрация: 13.08.2012
Сообщений: 38

множественные AJAX POST и ошибка 503
всем привет!

задача: надо получить список файлов с сервера (про сканировать каталог и подкаталоги)
хочу сделать что бы сканирование шло параллельно (запустить несколько раз один и тот же скрипт)
файлов 450тыс.

создал массив с промежутками по 10тыс.
scans[]= {scan:1, begin:0, end:10000}

пытаюсь отправить эти данные через AJAX скрипту на сервере
var i = 0;
/* тут заполнение массива*/

for (; i !== scans.length; ++i) {
    console.log("running scan=" + i);
    startProgress(scans[i]);
}

function create_ajax() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
    var names = [
        "Msxml2.XMLHTTP.6.0",
        "Msxml2.XMLHTTP.3.0",
        "Msxml2.XMLHTTP",
        "Microsoft.XMLHTTP"
    ];
    for (var i in names)
    {
        try {
            return new ActiveXObject(names[i]);
        } catch (e) {
        }
    }
    alert("Browser not compatible ...");
}

var arrayScans = [];

function startProgress(params) {
    var xhr_object = null;

    if (typeof params === "undefined" || typeof params.scan === "undefined") {
        xhr_object = create_ajax();
    } else {
        if (typeof arrayScans[params.scan] === "undefined") {
            arrayScans[params.scan] = create_ajax();
            console.log("fork(" + params.scan + ") is RUN");
        }
        xhr_object = arrayScans[params.scan];
    }

    if (xhr_object === null)
        return;
    if (xhr_object.readyState > 0 && xhr_object.readyState < 4) {
        return; 
    }

    var data = '';
    for (var key in params) {
            data += key + '=';
            if (typeof params[key] === "array" || typeof params[key] === "object") {
                data += JSON.stringify(params[key]);
            } else {
                data += params[key];
            }
            data += '&';
    }
        data = data.substr(0, data.length - 1);

    xhr_object.open("POST", "scaner.php", true);
    xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
    xhr_object.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr_object.onreadystatechange = function () {
        switch (xhr_object.readyState) {
            case 0:
                console.log("uninitialized");
                break;
            case 1:
                console.log("loading ...");
                break;
            case 2:
                console.log("loaded");
                break;
            case 3:
                console.log("interactive");
                break;
            case 4:
                console.log("complete");
                if (xhr_object.status == 200) {
                    parseResponse(xhr_object.responseText);
                } else {
                    console.log("Error " + xhr_object.status);
                }
                break;
        }
    }
    xhr_object.send(data);
}


не могу понять почему 3/4 запросов возвращают данные, а остальные 1/4 возвращаются с ошибкой 503?

что я делаю не так?
не правильно создаю и запускаю xhr объекты?

P.S. в серверной части есть контроль переработки скрипта по времени, т.е. он не будет работать дальше чем установлено в php.ini, даже меньше секунд на 5-7

Последний раз редактировалось woojin, 28.03.2016 в 20:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кроссдоменный AJAX: не передаются GET и POST данные aja}{ AJAX и COMET 5 20.09.2013 10:29
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Jquery ajax в Operа к ASP.NET скрипту по таймеру, IIS выдает 403.9 Zhirinovsky AJAX и COMET 0 23.02.2012 12:56
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41