PDA

Просмотр полной версии : Подвисание во время отправки запроса


van90
01.04.2015, 21:22
Добрый вечер. Делаю отправку картинки на сервер.
Предварительно превращаю bitmapdata этой картинки в byteArray.

Проблема в том, что на время отправки картинки флешка полностью виснет на ~500мс.
Можно ли как-то асинхронно это делать?


var urlRequest:URLRequest = new URLRequest();
urlRequest.contentType = 'multipart/form-data; boundary=' + getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = _data; // _data представляет собой byteArray картинки.

addListener();

_loader.load(urlRequest);

dimarik
01.04.2015, 21:38
Можно попытаться отправить частями, если сервер поддержит это начинание. Или предупредить пользователя об отправке, что немного субъективно скрасит задержку.

van90
01.04.2015, 22:37
Проверил с помощью getTimer(), где именно задержка происходит.


var s = getTimer();
_loader.load(urlRequest);
trace(getTimer() - s);


Когда говорю load -флешка и тупит. Причем, даже если очень замедлить инет.

dimarik, не подскажете, что происходит с точки зрения флеша перед отправкой? Он как-то преобразует data?

dimarik
01.04.2015, 23:13
Предполагаю, что это взаимодействие с ОС, выделение буферов, и еще какие-то оверхеды. Data, по идее лежит куском в памяти и вряд ли нуждается в преобразовании.
Можно выяснить эмпирическим путем, посылая от минимального значения, байта.

van90
02.04.2015, 17:32
Решено. Дело было в заголовках запроса :o

caseyryan
02.04.2015, 18:42
И что с ними было не так?

dimarik
02.04.2015, 20:15
van90, мне тоже любопытно.