URLLoaderDataFormat

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

URLLoaderDataFormat

Сообщение XELAD » 10 окт 2014, 11:06

Доброго времени суток.
Захотелось поделиться наблюдениями, авось ещё кто-то добавит и свои.
В игре используется обычный POST запрос к php файлам. После нескольких ухищрений, ЧТО именно нужно отправлять на сервер, было отброшено всё не необновленное, и осталось лишь то, что действительно нужно сохранить. Т.е. тут промашки нет. Но почему-то время от создания URLLoader до Event.COMPLETE было большим. Говоря простым языком: чем больше данных передавалось в URLLoader, тем дольше было время ожидания до ответа с сервера. Говоря ещё проще: всё сохранялось очень долго.
Говоря большие данные, я имею в виду string длиной 20 тысяч и более.
Имеем string вида "название=значение&название=значение&название=значение".
  1. var vars = new URLVariables(str)
  2. var request:URLRequest = new URLRequest();
  3. request.url = "http://la.la/la.php";
  4. request.method = URLRequestMethod.POST;
  5. request.data = vars;
  6. var loader:URLLoader = new URLLoader();
  7. loader.dataFormat = URLLoaderDataFormat.VARIABLES;
  8. loader.addEventListener(Event.OPEN, LOADER_START);
  9. loader.addEventListener(Event.COMPLETE, LOADER_DONE);

После многих тестов и чтений мануалов, вот к чему я пришёл с тестами над string.length>20000
1) new URLVariables(str) - если вы делаете так, то этот метод сразу вызывает метод decode, который преобразует строку в свойства объекта URLVariables. На этот может уйти несколько секунд.
2) loader.dataFormat = URLLoaderDataFormat.VARIABLES; - если вы делаете так в компании с методом POST, переменные кодируются с помощью формата x-www-form-urlencoded. На это уйдет много секунд.
3) Когда же наконец сработает Event.OPEN, и данные действительно будут отправлены на сервер, время до Event.COMPLETE занимает менее секунды (при условии небольшого ответа от сервера в кб).

Вот такая небольшая история на тему "почему так долго сохраняет". А оно и не сохраняет, а подготавливает ;)
XELAD

 
Автор темы
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25
Благодарил (а): 13 раз.
Поблагодарили: 24 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0