Мне выпал шанс грубо сравнить производительность Flash Remoting во Flash Player 9 с передачей XML-данных. Рабочие условия: есть гео-данные в формате GML (XML), описывающие границы районов города в виде полигонов. Общее количество точек-вершин полигонов — около 4000. Размер загружаемого XML равен 244 Кб, а со стандартным GZIP-сжатием — 49 Кб. Требуется сократить размер загружаемых данных и время их загрузки.
С использованием Flash Remoting размер загружаемых данных составил 44 Кб, а с GZIP-сжатием — 19 Кб. Это в 2,5 раза меньше размера XML, приблизительно настолько же быстрее оказалась и загрузка Remoting-данных. Кроме того, за счет обмена в Remoting типизированными геометрическими объектами удалось избавиться от некоторых шагов по разбору гео-данных из XML, так что выросла и скорость отрисовки загруженных полигонов.
Но у Flash Remoting, похоже, есть свой минус. Загруженные данные не кэшируются между сессиями, поскольку работа Remoting идет через POST-запросы. Думаю о создании своего кэша во Flash Cookies, но он ведь тоже не резиновый, а объем данных весьма большой. Может, есть другие варианты?
Flash Cookies на самом деле резиновый. Резиновости можно добиться, если использовать не одно имя для SharedObject'a, а множество разных. ;)
Красота. Не знал! Спасибо, бу пробовать!
К сожалению, GZIP компрессию бинарных данных (AMF3) нельзя использовать при работе с IE (лезут ошибки), с FireFox все OK.
А если не секрет -- откуда поставляется GML ???
Интересно, это и во Flash Player 9 так? Если можно - какие именно глюки? Раньше не слышал.
Да, если можно про MapServer поподробней. Очень интересно.
>>К сожалению, GZIP компрессию бинарных данных (AMF3) нельзя использовать при работе с IE >>(лезут ошибки), с FireFox все OK.
>Интересно, это и во Flash Player 9 так? Если можно - какие именно глюки? Раньше не слышал.
Чтобы воспроизвести данную ошибку надо проделать следующее:
1. http://www.jamesward.org/census/ 2. перейти на Navigator (слева вверху) 3. Выбрать Flex AMF3 4. Выжать кнопень Execute.
под IE вылезает вот такое сообщение от Flash Player:
[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 200: url: 'http://www.jamesward.org/census/messagebroker/amf?id=flex_amf3&gzip=true'"] at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler() at mx.rpc::Responder/fault() at mx.rpc::AsyncRequest/fault() at mx.messaging::ChannelSet/::faultPendingSends() at mx.messaging::ChannelSet/channelFaultHandler() at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.messaging::Channel/mx.messaging:Channel::connectFailed() at mx.messaging.channels::PollingChannel/mx.messaging.channels:PollingChannel::connectFailed() at mx.messaging.channels::AMFChannel/mx.messaging.channels:AMFChannel::statusHandler()
Да, забыл уточнить, что ошибка вылезает в IE6 без сервис паков.
Предыдущий пост
Следующий пост