Загрузка gif-анимации перед загрузкой содержимого iframe с сервера

Мне нужно показать gif-анимацию "Загрузка" в моем приложении перед загрузкой фреймов. Я пробовал в 3 методах.
1. используя Updateprogress в панели обновления. Процесс обновления работает хорошо, но после загрузки в браузер фреймы размываются.
2. используя BlockUI используя jquery
3. используя css. Во всех методах указан срок загрузки анимации в формате gif. Но в моем приложении iframe получает отчет от сервера pentaho и загружает его. Если я вручную укажу время, скажем, 3000 секунд, оно будет отличаться от загрузки содержимого iframes. Я не смог найти точное время для анимации. как получить время загрузки содержимого iframes с сервера и реализовать эту анимацию. Мой исходный код для методов Updateprogress и BlockUI:
http://www.codedigest.com/Articles/ASPNETAJAX/125_Using_UpdateProgress_Control_Effectively.aspx
http://www.malsup.com/jquery/block/#demos
Реализация метода css в виде Source: jQuery Alert Dialogs Plugin и mycode as

 <script type="text/javascript">
    $(document).ready(function () {
    $("#alert").click(function () {
    jAlertload();
    setTimeout(hideit,seconds); 
     });
     });
     function hideit() {
            $("#popup_containerload").remove();
            $("#popup_overlayload").remove();
        }
        beforeload = (new Date()).getTime();
        function pageloadingtime() {
         afterload = (new Date()).getTime();
         var seconds = 0;
         seconds = (afterload - beforeload) / 1000;   
         seconds1 = seconds * 1000;    
         }
        window.onload=pageloadingtime;
    </script>

CSS

#popup_containerload {
    font-family: Arial, sans-serif;
    font-size: 12px;min-width: 10px; 
    max-width: 600px; 
    background:  none repeat scroll 0 0 transparent;
    position:absolute;color: #000; top: 547px;
    z-index: 99999;
}    
#popup_contentload {
    padding: 1em 1.75em;margin: 0em;
}    
#popup_contentload.alert 
{
    position:absolute;height:100px;width: 100px;top: 55px;
    background: url(ajax-loader-5.gif) 10px 16px no-repeat;
}

Любые предложения будут полезны. Спасибо

1 ответ

Серверы не знают, сколько времени потребуется клиенту для загрузки определенного ресурса. В основном это время, которое требуется ресурсу, чтобы добраться от сервера к клиенту через Интернет.

Лучшим подходом для вас было бы показать изображение при вызове ресурса, т.е. jAlertload() и ищите событие загрузки контента. Как только контент загружен, вы можете скрыть .gif

Событие загрузки может быть вызвано с помощью $(document).ready(....); Событие в содержании iframe.

Еще более плавный подход заключается в том, чтобы скрыть содержимое iframe через CSS и показать его после полной загрузки, а затем скрыть .gif образ.

Другие вопросы по тегам