Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.08.2007, 18:01
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 1  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
По умолчанию Паттерн для обмена данными клиент-сервер

Друзья, хочется грамотно распланировать будущее Flash-приложение. Вроде все классы спроектированы, остается вопрос обмена данными с сервером - какой паттерн ООП можно для этого применить? Отправка запроса(взаимодействие через HTTP) -> ожидание - обработка ответа: есть для этого стандартные механизмы?

Старый 14.08.2007, 16:36
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 2  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Если бы через XMLSocket - я бы советовал синглтон, но для запросов по HTTP экземпляры XML удобнее каждый раз создавать заново. И на onLoad удалять.
Еще может быть порекомендовал бы паттерн 'команда' и 'итератор' - если необходимо сделать несколько последовательных запросов по ответу на предыдущий. Часто так делаю, причем несколько итераторов могут работать асинхронно.
__________________
...Тебе страшно? Мне - нет.

Старый 14.08.2007, 17:32
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 3  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
Цитата:
для запросов по HTTP экземпляры XML удобнее каждый раз создавать заново. И на onLoad удалять
аналогично всегда и поступаю... Кстати, Ромастый, а как Вы поступаете при необходимости послать новый запрос до прихода ответа предыдущего. Как сбрасываете старый объект XML?
Цитата:
Еще может быть порекомендовал бы паттерн 'команда' и 'итератор'
спасибо, попробую...

Старый 14.08.2007, 18:40
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 4  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Цитата:
Сообщение от : hr :
Кстати, Ромастый, а как Вы поступаете при необходимости послать новый запрос до прихода ответа предыдущего. Как сбрасываете старый объект XML?
А в чем проблема? Создается новый экземпляр XML и все.
Все запросы идут асинхронно, поэтому нет необходимости дожидаться ответа предыдущего, если это не предусмотрено логикой приложения.
Созданные экземпляры XML в самом простом случае можно хранить в массиве, и по необходимости удалять (это, если я правильно понял, чтобы не объявлять кучу свойств :XML напрямую в классе). Короче вариантов масса, в зависимости от задачи.

Если что-то конкретное, то распиши задачу подробнее.
__________________
...Тебе страшно? Мне - нет.

Старый 14.08.2007, 19:20
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 5  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
Цитата:
Созданные экземпляры XML в самом простом случае можно хранить в массиве, и по необходимости удалять
все верно, проблема в том, как их правильнее удалять. Ведь пока ответ на запрос не получен, старый :XML существует. Лично я обычно, если требуется новый запрос, удаляю такой старый XML оператором delete и удаляю обработчик события onLoad. Но знаю, что на самом деле объект не удалился, и когда сборщик мусора удалит его всегда остается загадкой. (в подтверждение моих слов, если сделать delete .xml, но оставить onLoad - он все равно выполнится).

Старый 14.08.2007, 19:27
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Если я правильно понял, ты отсылаеш запрос на сервер о скачивании .xml файла, и сразу же его удаляеш, а запрос все равно прошел?
Странно... я на год забил на флэш где то может чего и не понимаю...

Расскажи поподробнее, как ты собрался сделать delete .xml (просто тупо удалить переменную, в которую должен был придти запрос?)

Старый 14.08.2007, 19:41
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 7  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
Цитата:
как ты собрался сделать delete .xml (просто тупо удалить переменную, в которую должен был придти запрос?)
именно так, тупо удалить переменную в которую должен прийти запрос

Цитата:
Если я правильно понял...
на самом деле я отсылаю запрос на сервер к серверному сценарию, выдающему файл xml. Через 2-3 секунды по логике работы программы иногда требуется послать повторный запрос к тому же скрипту. Размер файла xml может быть достаточно большим, или сервер может не успеть обработать, и таким образом клиент может успеть послать запрос не дожидаясь ответа на предыдущий. А предыдущий в итоге может и прийти, но позднее (и плэйер будет хранить в памяти тот первый объект xml не понятно до каких пор).
..кстати, варианты дожидаться ответа первого запроса для отправки последующего не подходят.

Старый 14.08.2007, 21:57
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 8  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Паттерн "оболочка". Подписывайся не на события экземпляров XML, а на события оболочек.
При необходимости от них можно отписаться, после чего не опасаться, что onLoad уже ненужного xml вызовет какие-то методы главного класса.
А оболочка в автономном плавании на onLoad удалит экземпляр xml и удалится сама. Кроме того, оболочке можно доверить дополнительную работу с xml-документом- это зачастую часто намного удобнее, чем делать это в основном классе, или расширять класс XML.
__________________
...Тебе страшно? Мне - нет.


Последний раз редактировалось Ромастый; 14.08.2007 в 22:05.
Старый 15.08.2007, 10:58
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 9  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
Ромастый - гениально! То что нужно, спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:14.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.