|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
Имею сайт на MVC Core, который загружает отчёты с SQL Reporting Service (SSRS). Загрузка ведётся во фрейм по URL, который сформирован SSRS. Всё работает, но есть проблема - первое обращение к серверу отчётов происходит очень долго. О комфртных 3 - 5 секундах задержки речь не идёт. Зато любой другой (второй) отчёт появляется мгновенно. Видимо, это связано с SQL-сервером (2008 R2), который вначале пережёвывает XML-файл отчёта в html и уже потом отправляет на сервер. Я просто хочу выдать сообщение типа "Подождите ...!" и ПОСЛЕ загрузки отчёта и появления его на экране это сообщение убрать, что бы пользователи (в основном дамы) не нервничали и не щёлкали мышкой где попало и не пытались перезагрузить компьютер, думая, что он завис. Код: javascript 1. 2. 3. 4. 5. 6.
Но этот фокус не проходит! Как ещё можно помочь этой ситуёвине? Имеется ли событие окончания загрузки сайта внутри фрейма? С увжением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:32 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer, Странная штука. У вас сообщение "Подождите" будет убираться сразу, как появится. Надо так Код: javascript 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 14:41 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
voraa, Спасибо большое! Последовательность работает так, как "доктор прописал"! Однако всплыла старая проблема, о которой здесь же я писал ранее. Дело в том, что URL отчёта содержит параметры, которые, как известно, предваряются амперсандом ($ - пришлось заменить амперсанд вот этим $, а то он и тут заменяется) http://host/ .... $param-1=num1$param-2=num2... А jQuery превращает эти амперсанды в такую последовательность "& amp ;" каждый. Код: html 1.
Понятно, что это уже не URL отчёта! То есть последний оператор Код: javascript 1.
даёт ошибку загрузки отчёта (см. рисунок). Может вы знаете как "победить" и это? С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 17:32 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer, Вроде бы нашёл решение этого вопроса о превращении одиночного амперсанда в "& amp ;" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 11:49 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer, Модератору - почему у меня вдруг не оказалось прав? <admin>Откуда я знаю?</admin> ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 12:44 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer ValGer, Вроде бы нашёл решение этого вопроса о превращении одиночного амперсанда в "& amp ;" ПисАл об этом полчаса с рисунками, но при отправке модератор сказал , что у меня нет прав и уничтожил написанное. Не знаю, когда ещё раз соберусь повторить этот подвиг ;-( Но проблема решаема! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 13:19 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer А jQuery превращает эти амперсанды в такую последовательность "& amp ;" каждый. Код: html 1.
Понятно, что это уже не URL отчёта! То есть последний оператор Код: javascript 1.
даёт ошибку загрузки отчёта (см. рисунок). Может вы знаете как "победить" и это? С уважением ВВГ Самое простое решение - не использовать jquery там, где можно обойтись без него, если дело в нем. $("#idIFrame").attr("src", "@Model.ReportHref") прекрасно заменяется на document.getElementById("idIFrame").setAttribute("src", "@Model.ReportHref") Хотя я не очень себе представляю, как в @Model.ReportHre появляются параметры с амперсендами ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 15:18 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
voraa ValGer Самое простое решение - не использовать jquery там, где можно обойтись без него, если дело в нем. $("#idIFrame").attr("src", "@Model.ReportHref") прекрасно заменяется на document.getElementById("idIFrame").setAttribute("src", "@Model.ReportHref") Хотя я не очень себе представляю, как в @Model.ReportHre появляются параметры с амперсендами C этого я и начал ($("#idIFrame").attr("src", "@Model.ReportHref") ) Тут как раз и полезло! А насчёт параметров в отчёте, тут всё вполне очевидно - см рисунок. URL отчёта с параметрами передаётся из контроллера в Razor представления, а затем из Razor в jquery для формирования src. И вот на этом этапе и портится строка URL-адреса. Я решил эту проблему, правда несколько извилисто и попытался описать решение здесь, но похоже сбой сайта уничтожил мой труд при попытке публикации. А вот ваша подсказка работает прекрасно, ещё раз большое спасибо! С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 17:01 |
|
Событие окончания загрузки сайта во фрейм <ifarme> ?
|
|||
---|---|---|---|
#18+
ValGer, Вы уверены, что это jquery портит строку? У меня в этом большие сомнения. Модно проверить Код: javascript 1. 2. 3.
Я понятия не имею, какими инструментами вы пользуетесь, но подозреваю, что конструкции типа @Model.ReportHref обрабатываются сервером, и именно на этом этапе происходит замена амперсендов. В любом случае с помощью js можно все вернуть назад $("#idIFrame").attr("src", "@Model.ReportHref".replace(/\&аmp;/g, '&')) (У меня тут в регулярном выражении а - кирилицей, что бы форум не портил его. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2020, 10:00 |
|
|
start [/forum/topic.php?fid=22&fpage=8&tid=1443407]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 156ms |
0 / 0 |