powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Помогите по Jquery. Монитор изменений
35 сообщений из 35, показаны все 2 страниц
Помогите по Jquery. Монитор изменений
    #38465156
Есть достаточно большая таблица. Ей очень оперативно изменяют сотни пользователей.

На основании запроса к таблице сделан обычный Report.
Можно посмотреть пример на Jquery который плавно отображает оперативное содержание таблицы в Report, чтобы в браузере переобновлялись только те строки, по котором произошли изменения/вставки в базе (без морганий по другим строкам).

К сожалению, я в этом вопросе новичок. Может есть какой плагин.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38465250
haXbat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай Васильевич Петров,

Перепишите запрос, чтобы показывал только изменения за последние N-минут. Для этого на таблицу можно повесить триггер on insert/update, который для каждой записи будет вставлять sysdate в отдельную колонку. Потом по этой колонке фильтровать данные.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38465457
haXbat

Проблема не на сервере, а на клиенте. Как реализовать "плавное" изменение изформации в браузере.

Таблицу нужно показывать почти всю и совсем в другом порядке, не по времени..
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38465628
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Николай Васильевич Петров, плагин такой вряд ли есть.
Делайте сами, алгоритм примерно такой:
Ваш Report должен в зависимости от hidden item выдавать записи в 2-х режимах:
- при значении 0 - все записи (обычный режим)
- при значении 1 - только изменившиеся.
При входе значение hidden item = 0, отображаются все записи.
Таймером с нужным интервалом запускаете ajax запрос - с помощью htmldb_get вызываете
эту же самую страницу и передаете значение item = 1. Соответственно после отработки
htmldb_get у вас в javascript будет html таблица с изменившимися строками.
Осталось открыть цикл по тэгам tr и в исходной таблице вырезать через jQuery строки с
соответствующими id и вместо них вставлять новые.
Удачи!
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38467520
qwert7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели в jQuery нет ничего такого встроенного ?
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38467941
Николай Васильевич ПетровЕсть достаточно большая таблица. Ей очень оперативно изменяют сотни пользователей.

Бедная вульгарная таблица. А с кем ей изменяют эти сотни неверных пользователей, с другой таблицой?
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38738700
Halki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr_FrostДелайте сами, алгоритм примерно такой:
Ваш Report должен в зависимости от hidden item выдавать записи в 2-х режимах:
- при значении 0 - все записи (обычный режим)
- при значении 1 - только изменившиеся.
При входе значение hidden item = 0, отображаются все записи.
Таймером с нужным интервалом запускаете ajax запрос - с помощью htmldb_get вызываете
эту же самую страницу и передаете значение item = 1. Соответственно после отработки
htmldb_get у вас в javascript будет html таблица с изменившимися строками.
Осталось открыть цикл по тэгам tr и в исходной таблице вырезать через jQuery строки с
соответствующими id и вместо них вставлять новые.
Удачи!

Интересно. Тоже такое нужно. Есть пример кода?
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814465
Наиляша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такое законченное решение?
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814647
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НаиляшаЕсть такое законченное решение?
нету. Т.к. _дорого_ и в веб не нужно.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814737
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

То есть на странице постоянно видны все строки? Сколько же их?
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814769
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,
вы о чём? Что означает термин "все", если у вас динамика реал-тайм и постоянно добавляют, удаляют?
В APEX пагинация. Так же как в этом форуме.
Сделать таблицу как в десктопе очень сложно. Бесплатно делать никто не будет.
Есть бесплатная jQuery. ExtJS уже платный.
imho
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814775
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Вопрос в том, как себя должно вести. Если мы пагинировали на 2-ю страницу, а данные поменялись на 1-й, получается никак не обновим.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814779
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyPetro123,
Вопрос в том, как себя должно вести. Если мы пагинировали на 2-ю страницу, а данные поменялись на 1-й, получается никак не обновим.
По хорошему нужно вообще без пагинации (мож 5-ка умеет).
По хорошему польз-ли знают проблему и жмут F5
По хорошему польз-ли ставят фильтр и тоже нет проблемы
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814788
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814792
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Без пагинации нет нормального решения.

Если строк например пускай даже 10к, то всех их рисовать это нагрузка большая, браузер будет жрать много памяти и тормозить.

Вариант с динамической подгрузкой сложноват.

Но судя по тексту могу предположить, что у автора строк не так уж и много, раз их постоянно меняют. Поэтому можно например показывать действительно все строки, пихать все в див и тупо рефрешить регион - самый дешевый вариант.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814800
Наиляша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Gustly,
http://dev.sencha.com/deploy/ext-4.0.0/examples/#sample-2

Это платное решение? Кто его прикручивал к Apex?
В общем случае строк может до нескольких сотен.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814812
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyВариант с динамической подгрузкой сложноват.
+1 на данном этапе развития технологий).
Но непременно решат). Т.е. _показывать_ надо только то что на экране.
Наиляша,
это альтернатива APEX для программиста.
Если исп-ть ExtJS то APEX не нужен.
Платное для коммерческого.
...Вам решать...
Заказчик должен понимать, что он просит.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814821
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Видел я примеры, где данные грузятся по мере скролла, скролл высотой во все строки, но реально строк только те что находятся в данном состояние скролла.

Вообще я считаю что можно показывать до около 1000, чтобы браузер не мучался. Только их надо прятать в div с overflow в высоту с экран.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814831
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,
решений много всяких. От бизнеса зависит.
Гугл же как-то показывает свой поиск из много ))) записей в БД.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38814853
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ROWNUM < 50.

Вообще у него все быстро.

В 12-м оракле вроде есть rownum between 100 and 150, только пишется сложнее. Вот с ним была бы пагинация добротной.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38883189
apexapex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GustlyВ 12-м оракле вроде есть rownum between 100 and 150, только пишется сложнее. Вот с ним была бы пагинация добротной.

кстати, кто это пробовал? пагинация в текущем апексе достала!
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38883279
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexapex,
Чем достала. Фильтры есть.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884807
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Фильтры фильтрами. А вот запрос выполняется всегда полный, даже если надо вывести первые 15 строк из допустим 1000/10к/50к.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884830
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyФильтры фильтрами. А вот запрос выполняется всегда полный, даже если надо вывести первые 15 строк из допустим 1000/10к/50к.
Не буду утверждать на 100 процентов, но апексовый фильтр и пагинация не выбирают все данные. Посмотрите напрмер как отрабатывает APEX_PLUGIN_UTIL.GET_DATA (
Запрос, котрый передается в эту функцию оборачивается with и сверху на него накручивается where по номеру стобца и пакгинация.
Посмотрите в энтерпрайз менеджере реальные запросы, которые выполняет апекс.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884836
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

Фильтры работают так.

Был у нас select * from table.

Если добавить фильтр это превращается в
select * from (select * from table) where filter.

Если запрос не совсем уродливый (например очень дикая и медленная пайплайн функция), то оптимизатор должен понять что фильтруем, и построить хороший план и быстро выбрать.

С пагинацией же хуже. Данные на сервере всегда все обрабатываются. Просто возвращаются на клиент нужный диапазон.

Вообще я не знаю как дела в 12 версии. Ведь нам сначала надо отсортировать, а только потом 100-150 записи, а не наоборот.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884843
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,
это всё догадки. Смотри план выполнения и доказывай, что "не верблюд".
У меня не тормозит пока). Долше рендеринг идёт.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884874
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Для меня не догадки. Я смотрел планы и время выполнения. Говорю не с пустого места. Лично у меня пагинация происходила и по 10+ секунд. Когда надо выбирать 30+ столбцов из 10+ таблиц.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884889
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyФильтры фильтрами. А вот запрос выполняется всегда полный, даже если надо вывести первые 15 строк из допустим 1000/10к/50к.
Нет.

Посмотреть, во что превращается запрос из Source региона, можно через отладку. Увидеть его план можно через трассировку. Например, есть интерактивный отчёт с запросом:
Код: plsql
1.
select * from emp


Отчёт выводит по пять строк на страницы, в нём нет скрытых столбцов, группировок, вычисляемых столбцов и прочего. Смотрим в обработанную трассу:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
select 
       apxws_row_pk,
       "EMPNO",
       "ENAME",
       "JOB",
       "MGR",
       "HIREDATE",
       "SAL",
       "COMM",
       "DEPTNO",
       count(*) over () as apxws_row_cnt
 from (
select  * from (select b.ROWID apxws_row_pk, b.* from (select *  from (
select 
"EMPNO",
"ENAME",
"JOB",
"MGR",
"HIREDATE",
"SAL",
"COMM",
"DEPTNO"
 from   "EMP"
) ) b) r
) r where rownum <= to_number(:APXWS_MAX_ROW_CNT) 
 order by apxws_row_pk

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        7      0.00       0.00          0          6          0           7
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        9      0.00       0.00          0          6          0           7

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 92  (TEST)   (recursive depth: 1)

Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      0   WINDOW (SORT)
      0    COUNT (STOPKEY)
      0     TABLE ACCESS   MODE: ANALYZED (FULL) OF 'EMP' (TABLE)


План выполнения тезис про полное выполнение запроса из Source опровергает.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884901
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,

Я здесь вижу только ограничение по APXWS_MAX_ROW_CNT, которые обычно равно 1000 или 10000. До таких размеров у меня запросы не доходили. В итоге берутся все строки. Покажите лучше запрос с фильтром.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884915
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyКогда надо выбирать 30+ столбцов из 10+ таблиц.
Какой-то странный пример против APEX.
В ГУИ проблем не было?
В APEX неудобный ГУИ для стольких столбцов.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884935
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Пользователь - создание странное. Разумеется они в экран не помещаются. Их крутят по горизонтали. А потом выгружают в эксель и крутят там.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38884964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,
я думаю, 5-8 колонок будет летать или терпимо.
А простыни на экран, пусть помучаются или берут клиент-сервер-десктоп.
imho
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38885812
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyЯ здесь вижу только ограничение по APXWS_MAX_ROW_CNT, которые обычно равно 1000 или 10000. До таких размеров у меня запросы не доходили. В итоге берутся все строки. Покажите лучше запрос с фильтром.
Да, я был неправ, извините. Залез в потроха WWV_FLOW_WORKSHEET, чтобы проверить, как на самом деле идёт вывод конкретной страницы, а там всё печально. Открывают запрос (с фильтрами, сортировкой и прочим) и начинают его фетчить, пока не добираются до p_pg_min_row, после чего выводят строки до p_pg_max_row и закрывают курсор. Такое вот «дубовое» окно, без всяких COUNT STOPKEY в плане и rownum с сортировками в тексте.

С фильтром всё просто:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
  select apxws_row_pk
, "EMPNO"
, "ENAME"
, "JOB"
, "MGR"
, "HIREDATE"
, "SAL"
, "COMM"
, "DEPTNO"
   from
  (select *
     from
    (select b.rowid apxws_row_pk
    , b.*
       from
      (select *
         from
        (select "EMPNO"
        , "ENAME"
        , "JOB"
        , "MGR"
        , "HIREDATE"
        , "SAL"
        , "COMM"
        , "DEPTNO"
           from "EMP"
        )
      ) b
    ) r
    where
    (
      "JOB" = :apxws_expr_1
    )
  ) r
  where rownum <= to_number(:apxws_max_row_cnt)
order by apxws_row_pk 

1. APXWS_EXPR_1=MANAGER
2. APXWS_MAX_ROW_CNT=1000000 


Это уже через APEX_IR.GET_REPORT с автоформатированием кода.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38885914
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

Так только в интерактивных отчетах. В обычных уже норм должно быть, в том смысле, что зависит от выбранного типа пагинации

12-й оракл едва ли существенно поможет, т.к. чтобы выбрать 1000-1050 строки, нужно их все равно все отсортировать, + не забываем что апекс работает по принципу stateless, т.е. в конце каждого запроса сессия oracle сбрасывается и отдается другому клиенту, тем самым экономятся ресурсы сервера.
...
Рейтинг: 0 / 0
Помогите по Jquery. Монитор изменений
    #38886777
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,

В этом вся проблема, в сортировке. Единственный вариант какой я вижу - это извращенный. Принудительное использование индекса по полю, по которому нужна сортировка, так как в индексе оно уже отсортировано. Тогда уже можно делать выборку 100-150 строк, оно пойдет по отсортированному индексу. Но тогда нужно или куча индексов по всем полям или ограничивать пользователя в свободе выбора сортировки.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Помогите по Jquery. Монитор изменений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]