powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Событие окончания загрузки сайта во фрейм <ifarme> ?
10 сообщений из 10, страница 1 из 1
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39989723
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имею сайт на MVC Core, который загружает отчёты с SQL Reporting Service (SSRS). Загрузка ведётся во фрейм по URL, который сформирован SSRS. Всё работает, но есть проблема - первое обращение к серверу отчётов происходит очень долго. О комфртных 3 - 5 секундах задержки речь не идёт. Зато любой другой (второй) отчёт появляется мгновенно. Видимо, это связано с SQL-сервером (2008 R2), который вначале пережёвывает XML-файл отчёта в html и уже потом отправляет на сервер.
Я просто хочу выдать сообщение типа "Подождите ...!" и ПОСЛЕ загрузки отчёта и появления его на экране это сообщение убрать, что бы пользователи (в основном дамы) не нервничали и не щёлкали мышкой где попало и не пытались перезагрузить компьютер, думая, что он завис.
Код: javascript
1.
2.
3.
4.
5.
6.
            
$("#idWait").show();               - Сообщение "Подождите...!"
$("#idIFrame").load("@Model.ReportHref", function () {
       $("#idDivFrame").show();                                      - Открываю фрейм (он внутири <div>), гружу по URL и жду когда загрузится отчёт
});
$("#idWait").hide();                - Убираю сообщение


Но этот фокус не проходит! Как ещё можно помочь этой ситуёвине? Имеется ли событие окончания загрузки сайта внутри фрейма?
С увжением ВВГ
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39989836
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer,
Странная штука. У вас сообщение "Подождите" будет убираться сразу, как появится.
Надо так

Код: javascript
1.
2.
3.
4.
5.
6.
$("#idWait").show();              // - Сообщение "Подождите...!"
$("#idIFrame").on("load", function () {   // - Когда загрузится .....
       $("#idWait").hide();               // - Убираю сообщение
       $("#idDivFrame").show();                                     // - Открываю фрейм (он внутири <div>), гружу по URL и жду когда загрузится отчёт
});
$("#idIFrame").attr("src", "@Model.ReportHref")    // - Начинаем загрузку
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39989904
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa,

Спасибо большое!
Последовательность работает так, как "доктор прописал"!
Однако всплыла старая проблема, о которой здесь же я писал ранее.
Дело в том, что URL отчёта содержит параметры, которые, как известно, предваряются амперсандом ($ - пришлось заменить амперсанд вот этим $, а то он и тут заменяется)
http://host/ .... $param-1=num1$param-2=num2...
А jQuery превращает эти амперсанды в такую последовательность "& amp ;" каждый.
Код: html
1.
http://host/ .... &amp;param-1=num1&amp;param-2=num2...


Понятно, что это уже не URL отчёта!
То есть последний оператор
Код: javascript
1.
$("#idIFrame").attr("src", "@Model.ReportHref")    // - Начинаем загрузку


даёт ошибку загрузки отчёта (см. рисунок).
Может вы знаете как "победить" и это?
С уважением ВВГ
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990021
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

Вроде бы нашёл решение этого вопроса о превращении одиночного амперсанда в "& amp ;"
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990027
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

Модератору - почему у меня вдруг не оказалось прав?

<admin>Откуда я знаю?</admin>
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990029
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer
ValGer,

Вроде бы нашёл решение этого вопроса о превращении одиночного амперсанда в "& amp ;"


ПисАл об этом полчаса с рисунками, но при отправке модератор сказал , что у меня нет прав и уничтожил написанное. Не знаю, когда ещё раз соберусь повторить этот подвиг ;-(
Но проблема решаема!
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990044
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer

А jQuery превращает эти амперсанды в такую последовательность "& amp ;" каждый.
Код: html
1.
http://host/ .... &amp;param-1=num1&amp;param-2=num2...


Понятно, что это уже не URL отчёта!
То есть последний оператор
Код: javascript
1.
$("#idIFrame").attr("src", "@Model.ReportHref")    // - Начинаем загрузку


даёт ошибку загрузки отчёта (см. рисунок).
Может вы знаете как "победить" и это?
С уважением ВВГ

Самое простое решение - не использовать jquery там, где можно обойтись без него, если дело в нем.
$("#idIFrame").attr("src", "@Model.ReportHref")
прекрасно заменяется на
document.getElementById("idIFrame").setAttribute("src", "@Model.ReportHref")

Хотя я не очень себе представляю, как в @Model.ReportHre появляются параметры с амперсендами
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990068
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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-адреса.
Я решил эту проблему, правда несколько извилисто и попытался описать решение здесь, но похоже сбой сайта уничтожил мой труд при попытке публикации.
А вот ваша подсказка работает прекрасно, ещё раз большое спасибо!
С уважением ВВГ
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990267
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer,
Вы уверены, что это jquery портит строку? У меня в этом большие сомнения.
Модно проверить
Код: javascript
1.
2.
3.
var url =  "@Model.ReportHref"
console.log (url)
$("#idIFrame").attr("src", url)


Я понятия не имею, какими инструментами вы пользуетесь, но подозреваю, что конструкции типа @Model.ReportHref обрабатываются сервером, и именно на этом этапе происходит замена амперсендов.
В любом случае с помощью js можно все вернуть назад

$("#idIFrame").attr("src", "@Model.ReportHref".replace(/\&аmp;/g, '&'))

(У меня тут в регулярном выражении а - кирилицей, что бы форум не портил его. )
...
Рейтинг: 0 / 0
Событие окончания загрузки сайта во фрейм <ifarme> ?
    #39990320
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@Html.Raw(Model.ReportHref)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Событие окончания загрузки сайта во фрейм <ifarme> ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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