Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получить значение в column report (или IR) асинхронно / 25 сообщений из 61, страница 1 из 3
04.04.2017, 12:24
    #39432790
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Отчет основан на следующем запросе:

Код: sql
1.
2.
3.
4.
5.
select
id,
function1(id) as func_result,
.....
from table


function1 выполняется долго (возвращает html), так как использует CTX_DOC.SNIPPET который на больших документах может выполняется до секунды, если в Отчете к примеру 20 записей то получаем 20 секунд ожидания, хотя сам запрос выполняется менее секунды.

В попытках решить вопрос получается два решения:
1) В поле отчета func_result изначально писать ID, после после полной загрузки страницы пробежаться по всем записям и через apex.server.process собрать результат.
Запрос будет выглядеть так:
Код: sql
1.
2.
3.
4.
5.
select
id,
id as func_result,
.....
from table



2) Использовать apex_items, значение которого заменять в javascript для каждого поля отдельно.
Запрос будет выглядеть так:
Код: sql
1.
2.
3.
4.
5.
6.
select
id,
APEX_ITEM.TEXT(1,id) as func_result,
'<script> тут магия </script>' as js, -- скрипт выполняет apex.server.process и результат пишет в apex_item.text
.....
from table



Готовых примеров найти не получилось, подскажите куда копать?
Какой вариант в данной ситуации применять?
Гугл дает только примеры реализации обратной связи на изменение значений в apex_items и последующим сохранением их в базе, а вот получение данных из базы и их асинхронное отображение найти не смог ((
В js я lol, помогите с магией....
...
Рейтинг: 0 / 0
04.04.2017, 13:02
    #39432833
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOra,

Цель именно асинхронно загрузить или избавится от 20 секунд?

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

Вариант №3
Код: plsql
1.
2.
3.
4.
5.
select
id,
result,
.....
from table(pipeliend function)



Вариант №4
Репорт целиком грузиться со всеми столбцами грузиться Ajax-ом. Т.е. при загрузки страницы репорт пустой, а после загрузки идет запрос на сервер и обновляется заполненный.
...
Рейтинг: 0 / 0
04.04.2017, 13:50
    #39432869
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
blkangel,

Хочу избавить пользователя от ожидания 20 сек.
В отчете есть множество других данных которые пользователь может изучать до "подгрузки" остальных.
Нагрузка на сервер не беспокоит, можно ее распределить (REST сервисы), главно чтобы пользователь получал данные сразу после запроса - без ожидания его полного формирования на стороне сервера....
...
Рейтинг: 0 / 0
04.04.2017, 14:16
    #39432895
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraВ отчете есть множество других данных которые пользователь может изучать до "подгрузки" остальных.
тогда уберите ту тормозящую функцию и либо грузите позже, либо в отдельную таблу либо меняете её на быструю.
...
Рейтинг: 0 / 0
04.04.2017, 14:18
    #39432896
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
вариант грузить позже возможен с подгрузкой при наведении мышкой (контекст всплыв. окно)
...
Рейтинг: 0 / 0
04.04.2017, 14:19
    #39432897
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
вариант №5 тут была таблица с развёртыванием подтаблицы на плюсик. Если она подгружает асинхронно.
...
Рейтинг: 0 / 0
04.04.2017, 14:33
    #39432917
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraunction1 выполняется долго (возвращает html), так как использует CTX_DOC.SNIPPET
посмотрел API.
Если без неё никак, то вариант№6 - триггер на изменение текста и заранее формирование VIEW текста вместо апекса.
А потом быстрый-быстрый его показ.
...
Рейтинг: 0 / 0
04.04.2017, 14:42
    #39432927
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123,

Для удобства понимания можно представить поисковик по названию лекарства, который выводит результаты запроса с подсвеченными поисковыми словами + имя файла и т.д.
Мы сначала покажем таблицу с 20 строками, один столбец - имя файла, второй - имя аптеки, третий - самое продаваемое лекарство, четвертый наши данные, которые подгружаются по мере выполнения ajax запросов.
Я готов RESTсервисы написать и json возвращать, но вот как все это на js реализовать в привязке к отчету APEX?
...
Рейтинг: 0 / 0
04.04.2017, 14:59
    #39432946
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraЯ готов RESTсервисы написать и json возвращать, но вот как все это на js реализовать в привязке к отчету APEX?
с учётом что вы junior в JS?
AlexProOraВ js я lol, помогите с магией....
т.к. REST сервисы тут делают не для самого апекса, а для клиентов например на JS.
...
Рейтинг: 0 / 0
04.04.2017, 15:04
    #39432950
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraДля удобства понимания можно представить поисковик по названию лекарства, который выводит результаты запроса с подсвеченными поисковыми словами + имя файла и т.д.
т.к. долгий запрос на 20сек УЖЕ работает - покажи скриншот как это выглядит.
...
Рейтинг: 0 / 0
04.04.2017, 15:38
    #39432988
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOra,

Зря вы третий вариант обходите стороной, он скорее всего снимет проблему...

Но второй вариант тоже интересен мне в реализации, я нигде не применял, но наверное интересно получиться.

Например вместо данных с нужном нам столбце, в каждой строчке GIF загрузки (колесик, часы песочные и т.д.).
Потом идет Ajax запрос (один это правильно). Возращается JSON и расставляет значения вместо GIF-ок. Ну как минимум красиво получится. :)
...
Рейтинг: 0 / 0
04.04.2017, 15:41
    #39432999
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123,

Пример только столбцов побольше...
Как правило знаний хватает адаптировать примеры js под себя, когда примеров нет - "сажусь в лужу".
...
Рейтинг: 0 / 0
04.04.2017, 15:49
    #39433008
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
blkangelAlexProOra,
Зря вы третий вариант обходите стороной, он скорее всего снимет проблему...

Ни в коем разе, просто данный подход для меня новый, сначала надо попробовать, если получится то отпишусь обязательно!

blkangelAlexProOra,
Например вместо данных с нужном нам столбце, в каждой строчке GIF загрузки (колесик, часы песочные и т.д.).
Потом идет Ajax запрос (один это правильно). Возращается JSON и расставляет значения вместо GIF-ок. Ну как минимум красиво получится. :)
Вот это было бы просто мега круто! я раньше писал про это, но реальных решений найти не получилось....
Поэтому тему переформулировал с учетом нарытых вариантов....
...
Рейтинг: 0 / 0
04.04.2017, 15:50
    #39433009
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOra Пример только столбцов побольше...
)))
выделяй на клиенте в JS без SNIPPET
...
Рейтинг: 0 / 0
04.04.2017, 15:52
    #39433012
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraКак правило знаний хватает адаптировать примеры js под себя
а заявки на гуглопоиск?
Придётся вам ходить на JS ветку за советами.
Динамического выделения в рантайме в апексе нету.
...
Рейтинг: 0 / 0
04.04.2017, 15:55
    #39433016
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraя раньше писал про это,
блин! Прошло 2 года?
Хочется сказать вам до свидания). Баловство у вас всё. Раз пару лет прошло.
...
Рейтинг: 0 / 0
04.04.2017, 15:59
    #39433019
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOrablkangelAlexProOra,
Например вместо данных с нужном нам столбце, в каждой строчке GIF загрузки (колесик, часы песочные и т.д.).
Потом идет Ajax запрос (один это правильно). Возращается JSON и расставляет значения вместо GIF-ок. Ну как минимум красиво получится. :)
Вот это было бы просто мега круто! я раньше писал про это, но реальных решений найти не получилось....
Поэтому тему переформулировал с учетом нарытых вариантов....

В принципе реализация не сложная.
Надо немного знаний по JS или Jquery, разметку Апексойдовую изучить, Ajax, Json, всего помаленьку.
Звучит как ах... как много всего, на деле все выйдет в 10 строчный код...
...
Рейтинг: 0 / 0
04.04.2017, 16:19
    #39433030
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123AlexProOra Пример только столбцов побольше...
)))
выделяй на клиенте в JS без SNIPPET
Для "грамотной" подсветки нужно иметь весь документ, чтобы извлечь наиболее релевантные фразы и т.д.
Все это тянуть на клиента - затратно....
...
Рейтинг: 0 / 0
04.04.2017, 16:24
    #39433036
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraДля "грамотной" подсветки нужно иметь весь документ, чтобы извлечь наиболее релевантные фразы и т.д.
Все это тянуть на клиента - затратно....
да.
Делают так
https://ru.wikipedia.org/wiki/Lucene
...
Рейтинг: 0 / 0
04.04.2017, 16:41
    #39433047
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
blkangelВ принципе реализация не сложная.
Надо немного знаний по JS или Jquery, разметку Апексойдовую изучить, Ajax, Json, всего помаленьку.
Звучит как ах... как много всего, на деле все выйдет в 10 строчный код...
Вот где такова гуру найти, который все эти технологии в голове держит и имеет "желание" эти 10 строк кода людям выложить?
...
Рейтинг: 0 / 0
04.04.2017, 16:57
    #39433055
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123AlexProOraДля "грамотной" подсветки нужно иметь весь документ, чтобы извлечь наиболее релевантные фразы и т.д.
Все это тянуть на клиента - затратно....
да.
Делают так
https://ru.wikipedia.org/wiki/Lucene
Я уже подсел на Oracle Text + RCO for Oracle....
...
Рейтинг: 0 / 0
04.04.2017, 17:11
    #39433063
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraЯ уже подсел на Oracle Text + RCO for Oracle....
которых ждать 20 сек?
Тогда выдавайте по одной записи с часиками.
Я вам написал 6 вариантов реализации.
Вы упёрлись в один вариант.
...
Рейтинг: 0 / 0
04.04.2017, 17:20
    #39433068
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123AlexProOraЯ уже подсел на Oracle Text + RCO for Oracle....
которых ждать 20 сек?
Тогда выдавайте по одной записи с часиками.
Я вам написал 6 вариантов реализации.
Вы упёрлись в один вариант.
)) я же писал что траблов с выполнением запроса нет, он выполняется очень быстро, вопрос в том как асинхронно получить данные в ячейке отчета...
+ представьте себе поисковик который выводит записи по одной, хотя если Вы покажите пример как это сделать то будет полезно всем....
...
Рейтинг: 0 / 0
04.04.2017, 17:28
    #39433074
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
AlexProOraя же писал что траблов с выполнением запроса нет, он выполняется очень быстро,
у меня с пагинацией любой размер строк выводится за 0,2 сек.
Поэтому вы написали неправду.
AlexProOraвопрос в том как асинхронно получить данные в ячейке отчета...
дал 6 вариантов. Большинство требуют JS. Тот что с таблой - не требует.
AlexProOra+ представьте себе поисковик который выводит записи по одной, хотя если Вы покажите пример как это сделать то будет полезно всем....
такая странная задача с 15-го года только у вас.
Решается на JS костылём.
Я делал костыль с селекторами по замене текста в таблице после открытия.
...
Рейтинг: 0 / 0
04.04.2017, 17:35
    #39433078
AlexProOra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить значение в column report (или IR) асинхронно
Petro123такая странная задача с 15-го года только у вас.
Решается на JS костылём.
Я делал костыль с селекторами по замене текста в таблице после открытия.
Мне многие говорят что я странный и задачи у меня соответствующие )
Спасибо Вам что тратите на меня свое время!
Выложите плиз js скрипт который земеняет значения в таблице после открытия.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получить значение в column report (или IR) асинхронно / 25 сообщений из 61, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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