![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
имелось ввиду, что можно сразу много запросов добавить из любой части программы, а не ждать выполнения каждого, чтобы добавить следующий
|
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Слово "асинхронно" не несет никакой смысловой нагрузки, потому как непонятно как еще можно формировать очередь на одном клиенте. Кстати, в соседней ветке правильный подход показан с флоксом.
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
удалю его раз оно вас так напрягает)
|
|
|||||
|
[+4 06.05.14]
|
Спасибо парни. Значит будем работать по методу пчела и дикобраза вместе.
Насутчать им по пальцам надо конечно, но что поделать - говорят у нас уже как сто лет двиг написан и мы, такие вот умные - с нашим АПИ уже все работабют и никто не жалуется ( типа на разных языках ) . Добавлено через 38 минут Если кому интересно, как я сделал package com.combet.controllers { import com.combet.events.ServerEvent; /** * ... * @author in4core progression lab */ public final class ServerProcessor extends Object { public static const SERVER:String = ""; public static const AUTHORIZE:String = ""; public static const GET_GAMES_FIELDS:String = ""; public static const GET_MENU_HEADERS:String = ""; public static const GET:String = "get"; public static const POST:String = "post"; public function ServerProcessor() { } public static function runProcess(name:String, callBack:Function , args:Object = null, reqMethod:String = GET):void { var sc:ServerConnection = new ServerConnection(); sc.callBack = callBack; sc.execute(SERVER + name, args, reqMethod); } } } package com.combet.controllers { import com.combet.events.ServerEvent; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IEventDispatcher; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; /** * ... * @author in4core progression lab */ public class ServerConnection extends EventDispatcher { private var _urlLoader:URLLoader = new URLLoader(); private var _callBack:Function = null; public function ServerConnection() { this._urlLoader.addEventListener(Event.COMPLETE, onRequestComplete); } private function onRequestComplete(e:Event):void { trace("Data recieved : " + this._urlLoader.data); this._urlLoader.removeEventListener(Event.COMPLETE, onRequestComplete); this._callBack(this._urlLoader.data); } public function execute(command:String , args:Object = null , method:String = "get"):void { var req:URLRequest = new URLRequest(command); if (method === "get") req.method = URLRequestMethod.GET; else if(method === "post") req.method = URLRequestMethod.POST; if(args) req.data = args; this._urlLoader.load(req); } public function set callBack(value:Function):void { this._callBack = value; } } }
__________________
Марк Tween |
|
|||||
|
Короче конструктивнее отвечу, а то совесть мучает.
0. То что ты показал - дефолтное решение, с которого ты и начал, тупо хрень которая вместо подписки на комплит дает регистрацию коллбеком. Хотя суть реально та же. Твоя обертка ничем не помогает решить вопрос. 1. Кто угодно, откуда угодно может заспамить месадж с какой угодно обработкой(коллбеком). 2. ServerConnection - раз уж на то пошло - лучше сделать интернал классом, чтоб напрямую к нему доступа не было. Только через твою фабрику-манагер. 3. Никаких подписок на ерроры и таймауты. 4. Никакого кеша/пула/очереди. Тупо создал лоадер в небытие и забыл про него. 5. Удаляться мусорщиком твои лоадеры не будут из-за колбека. Возможность "отписки" не предусмотрена. 6. Создание лоадера происходит идентично дефолтному - тупо урл гет-пост и параметр. Человеческий фактор не исключен ни на грамм. 7. Коллбеки нетипизированные (еще один пункт к человечкому фактору). Типизация коллбека во флеше проблематична. Но никто не отменял стратегию или как минимум интерфейс, ограничивающий г-нокод в этих местах. Итого вопрос: А что ты сделал то? И зачем? С таким подходом - чем урллоадер напрямую хуже, кроме экономии копипасты пяти строк кода подписки на комплит? Добавлено через 6 минут А столько текста и негодования я вылил по этому вопросу потому что в нашем проекте умельцы запилили такую же систему. И уж поверь мне. Она не рабочая. Или делай нормально или лучше юзай лоадер напрямую.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
|
[+4 06.05.14]
|
Что значит кто угодно? Кто ? о чем вообще речь? Никто никуда заспамить ничего не может, к серверным скриптам обратиться нельзя, пока не пройдена авторизация логина-пароля. Или ты про само приложение и работы над ним? Нет нет, тут речь об этом не идет, все предельно просто, никаких сложных структур, чтобы можно было нарваться на ошибку.
Тут о безопасности речь не идет, она нас не беспокоит. Тут именно стоял вопрос, чтобы не было проблем, что какое то соыбтие придет раньше и мы не знаем какое. А тут все собственно понятно. Пускай коллбеки, ну куда деваться. А чего у вас там в проекте столо не рабочим то? Вполне себе быдло-подход на быдло-сервер, все логично. Цитата:
На остальные 7 пунктов отвечать не буду, ты прав - но ты прав в контесте своего проекта, тут так скажем совсем мелкая поделка в 100 строчек, а не огромная игра, чтобы парится. А вопрос я задал, ибо мне было интересно , как подругому оно могло решаться.
__________________
Марк Tween |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|