Конференция "Прочее" » Автообновление данных
 
  • Gavana © (06.10.16 14:33) [0]
    Здравствуйте! Как правильно реализовывается автообновление данных из сервера? Допустим имеется Grid в котором отображен список людей, если в базе появляются новые записи, нужно по таймеру их подгружать. Сейчас только одна мысль, это хранить в сессии дату и время последнего запроса, и каждые N - секунд проверять если ли записи с date старше последнего запроса.
  • iop © (06.10.16 14:45) [1]
    каждые N секунд это мало.
    надо каждые M секунд.
  • Gavana © (06.10.16 14:48) [2]

    > iop ©   (06.10.16 14:45) [1]


    Спасибо, сейчас поменяю
  • stas © (06.10.16 15:43) [3]
    Gavana ©   (06.10.16 14:33)
    Смотря какая цель. Вы должны понимать что это дополнительная нагрузка на сервер.
    Может проще обойтись кнопкой "обновить"
    Можно например запоминать максимальный полученный Id, а потом по таймеру догружать все что больше этого Id, но для этого просто грид подключенный к датасоурсу не подойдет.
    А можно и события реализовать.
    Распишите подробнее, какой сервер, что за форма, куда грид подключен.
  • MsGuns © (06.10.16 15:51) [4]
    Дада, каждые полсекунды. Особенно если выборка идет минуты :)
  • Gavana © (06.10.16 16:18) [5]
    Секунды это была условность, на самом деле будут минуты, может и часы. Приложение у людей может быть открыто весь день, по этому желательно было бы периодически обновлять сведения за него. Вместо ID я использую GUID, но есть дата и время, где есть миллисекунды. База mySQL, использую ZeosLib
  • Smile © (06.10.16 18:48) [6]
    Давно не программирую в Delphi, тем не менее смущает, что до сих пор кто-то использует в своих приложениях гриды ...
  • Kerk © (06.10.16 19:17) [7]

    > Smile ©   (06.10.16 18:48) [6]

    Человечество уже отказалось от табличного представления данных?
  • Smile © (06.10.16 19:35) [8]
    > Kerk ©   (06.10.16 19:17) [7]

    На мой взгляд не в отказе от табличного представления данных, а в представлении их в своем "интерпретипованном" виде (ну типа ListView, никак напрямую не связанном с DataSource или DataSet), и дальнейшую обработку этой (изменяющейся) информации обязан взять "на себя" разработчиик ПО
  • KSergey © (06.10.16 21:00) [9]
    Можно попробовать читнуть гугель.
    Срача, конечно, больше, как обычно, чем полезного, и всё же.

    https://www.google.ru/search?client=opera&q=mySQL+как+послать+сигнал+об+обновлении+данных

    В целом похоже, что штатного механизма для MySql нет
  • Игорь Шевченко © (06.10.16 22:09) [10]
    Нормальный подход, каждый интервал времени опрашивать сервер. Не вижу тут ничего плохого.
  • iop © (06.10.16 22:34) [11]
    автообновление должно отключаться юзером если тот хочет (в смысле если не хочет)
    интервал настраиваться
    плюс "хочу вот прямо сейчас обновиться", а не ждать интервала
  • sniknik © (06.10.16 22:55) [12]
    > если в базе появляются новые записи
    удаление, корректировка записей не предусмотрена? это к тому, что
    > если ли записи с date старше последнего запроса.
    не даст полной картины.
  • Игорь Шевченко © (06.10.16 23:07) [13]
    iop ©   (06.10.16 22:34) [11]

    Да, конечно, все верно.
  • Sergey13 © (07.10.16 09:08) [14]
    Для начала я бы проанализировал предметную область и решил - а оно вообще надо? Может таки достаточно кнопки "Обновить"?
    Без такого анализа, ИМХО, похоже на 100500-ю реинкарнацию вопроса про конкуренцию за последний чайник на складе.
  • iop © (07.10.16 11:28) [15]
    не....
    тут надо журналисткое расследование, парламенсткие слушания....
    потом прения в кулуарах.
    да и вообще всю систему менять надо как говорил афоня.
  • Empleado © (07.10.16 12:14) [16]
    Можно бы какой-нить MV* framework рассмотреть как там все устроено и как работает (например MVVP)
 
Конференция "Прочее" » Автообновление данных
Есть новые Нет новых   [134431   +14][b:0][p:0.001]