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

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

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

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
По умолчанию где делать выбоку полей - на сервере или на клиенте

Сразу скажу что вопрос общий, ситуации такой нет. Возьмем пример, пускай будет хттп соединение, допустим есть десять юзеров по 10 полей. и тут у энного количества юзеров поменялось эм полей. как следует поступить:1) спросить у сервера всех юзеров со всеми полями 2) спросить у сервера только изменившихся юзеров со всеми полями 3) спросить у сервера юзеров с выборкой только изменившихся полей.

Что в итоге будет быстрее и какие есть преимущества у различных способов?
Меняет ли что либо наличие сокет соединения?
Есть ли разница для разных серверных скриптов?(ну например смартфоксовская ява на серверной части или перловый скрипт)
По сути, насколько я понимаю, вопрос идет к тому где делать выборку полей на серверной части или на клиентской, где здесь золотая середина? может у кого нибудь есть какая то статистика по вопросу?

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А как клеинтская часть узнает, какие поля изменились, а какие нет с момена последнего получения клиентской частью данных? Значит для случаев (2) и (3) нужно передавать серверу сведения о том, когда данный клиент последний раз запрашивал данные. Получается излишняя загруженность сервера ненужными другим клиентским модулям данными.
У меня в клиенте флешевском пользователем меняются текущие значения полей объекта. Клиентская часть вычисляет только измененные поля и передает запрос на их изменение. И тут же забирает данные по методу (1), так как изменения могли быть внесены кем-то еще, и данные в нем должны быть актуальными.
Но вообще конечно, это частный случай, когда мало записей.
А если строк более несколько тысяч, то забирать всё у сервера - глупость. В этом случае нужно передавать серверу вычисления. Сводить трафик к минимуму, и тогда всё заработает шустрее. Это все из теории БД, там много про это написано, нужно почитать.


Последний раз редактировалось mooncar; 05.06.2009 в 16:18.
Старый 05.06.2009, 20:25
incorp вне форума Посмотреть профиль Отправить личное сообщение для incorp Найти все сообщения от incorp
  № 3  
Ответить с цитированием
incorp

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
ну да, по сути это вопрос по теории баз данных, только в практическом ее применении к флеш технологиям. вот похоже у меня наконец родился правильный вопрос. внимание, вопрос!
как в числах сравнить затраты сервера на отсылку данных клиенту и на выборку нужных полей. сопоставимы ли они. тобишь что проще для сервера(допустим много таблиц, сложные связи) - послать большой кусок данных в виде "как есть" или потратить время на выборку чтобы затем отправить только то что нужно? можно ли "помочь" серверу справляться с загрузкой переносом выборки полей на клиентскую часть? да, и насколько разнятся эти цифры в зависимости от установленной базы и сервера.

Старый 05.06.2009, 21:07
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Во-первых, при распределении вычислений нужно следовать логике того, какой набор даннных важен для клиентской части в сей момент (например игра мультиюзер - одни требования, управление каталогом товаров двумя менеджерами - другие требования), и делить нагрузку соответственно.
Во-вторых , нужно строить запросы так, чтобы сервер максимально точно производил запросы. Почитайте главы книжек про SQL, которые касаются оптимизации структуры схем БД и запросов.
А вообще, слишком у вас общие вопросы, другое дело, если бы у вас какое-то затруднение при реализации конкретного проекта. Да и к AS это имеет отношение весьма косвенное. Тут есть ветка о флеше и серверных технологиях.

Старый 07.06.2009, 00:23
Badim вне форума Посмотреть профиль Отправить личное сообщение для Badim Посетить домашнюю страницу Badim Найти все сообщения от Badim
  № 5  
Ответить с цитированием
Badim

Регистрация: Jul 2005
Адрес: Steam/Mobiles
Сообщений: 790
Отправить сообщение для Badim с помощью ICQ Отправить сообщение для Badim с помощью AIM Отправить сообщение для Badim с помощью MSN Отправить сообщение для Badim с помощью Skype™
Цитата:
Сообщение от incorp Посмотреть сообщение
ну да, по сути это вопрос по теории баз данных, только в практическом ее применении к флеш технологиям. вот похоже у меня наконец родился правильный вопрос. внимание, вопрос!
как в числах сравнить затраты сервера на отсылку данных клиенту и на выборку нужных полей. сопоставимы ли они. тобишь что проще для сервера(допустим много таблиц, сложные связи) - послать большой кусок данных в виде "как есть" или потратить время на выборку чтобы затем отправить только то что нужно? можно ли "помочь" серверу справляться с загрузкой переносом выборки полей на клиентскую часть? да, и насколько разнятся эти цифры в зависимости от установленной базы и сервера.
вообщето, в общем, это глупый вопрос =))).
клиен соединяеться с сервером, и получат полный дамп. далее при изменении каких либо полей у каких либо юзиров - клиент оповещаеться о каждом из них поотдельности. Если происходит разрыв связи - то при повторном конекте все снова- клиент получает полный дамп, далее изменения.
во вторых, гоять туда сюда большие обьемы данных - зло, забьете канал.
способ когда шлються все данные, и клиент сам определяет что изменилось - использую тогда когда связь не стабильна, и возможна только в одну сторону... но и здесь всеравно лучше вести учет изменения и посылать их клиенту, чем гонять все данные туда сюда.

а конкретный ответ - цифры не сопостовимы. зависят сильно от количества пользователей. в данном случаи трафик дороже CPU.

Старый 08.06.2009, 01:25
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Badim Посмотреть сообщение
вообщето, в общем, это глупый вопрос =))).
клиен соединяеться с сервером, и получат полный дамп.
Вопрос не так глуп. Вопрос только в балансе. Полный дамп [ну] никому не нужен.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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