2009-10-19 2 views
3

У меня есть уникальный вопрос. Существует веб-приложение, которое берет 5.57mbs загрузки. Я хочу, чтобы в нем находилась панель загрузки или Ajax Spinner, которые оживляют, чтобы они знали, что в течение времени загрузки ~ 10-20 секунд происходит продвижение вперед. Большинство из них - изображения, здесь много JS. Проблема здесь в том, что Firefox правильно нити все, чтобы анимированный gif продолжал вращаться. Оживляющий. Мир счастлив. Однако IE загружает первые несколько кадров счетчика, затем заикание останавливается раньше, и оно ничего не делает, пока сайт не будет полностью загружен. Он также блокирует браузер при загрузке без загрузки. Затем он покажет страницу, когда загрузка будет завершена, однако прядильщик останавливается во время первых кадров, независимо от того, будет ли он прикреплен или нет. (Кешированная загрузка составляет всего ~ 2-3 секунды). Опять же, это не происходит в Firefox, Safari или современных браузерах, кроме IE. Есть ли способ загрузить IE красиво? Исследования пока ничего не придумали.Internet Explorer, панель загрузки, 5.57MB страница

Код погрузчика (по запросу): обратите внимание, что из-за большой базы кода трудно перефразировать, однако это, похоже, отражает дилемму.

<script type="text/javascript"> 
    function show_main_gui() { 
     dojo.byId("splashloader").style.visibility = "hidden"; 
    } 
    function init(){ 
    show_main_gui(); 
    } 
    dojo.addOnLoad(init); 
</script> 
<style type="text/css"> 
#splashloader { 
position:absolute; 
z-index:999; 
width:800px; 
visibility:visible; 
height:600px; 
background:#fff; 
text-align:center; 
color:#1E4FD9; 
} 
</style> 

<table id="splashloader"><tr><td><img src="images/interface/splashloader.gif"><span class="loader"> Loading...</span></td></tr></table> 

Стол ... так как его выравнивание по вертикали проще во всех браузерах.

IE 8 и 7 по-прежнему сохраняются при загрузке gif анимации. Если я изменил счетчик, который будет показан после загрузки, анимация будет оживлена. Я попытался вытащить все вызовы JavaScript, кроме этого, и загрузить в кеш, и он по-прежнему показывает только первые несколько кадров в IE во время загрузки 1-2 секунды.

+1

Можете ли вы предоставить код, который генерирует загрузчик? –

+0

Я бы сказал, если вы можете проверить его в IE 7 или 8, и он работает (хорошие шансы, что он может работать в 8), тогда забудьте об этом. Я давно перестал беспокоиться о IE 6 и ниже пользователей. –

+0

Я добавил код в главный вопрос выше. Для ссылок ref я использую все три версии IE, это демонстрирует его в IE 7 и *. – 2009-10-19 06:23:11

ответ

0

Вы можете динамически загружать контент в javascript и использовать предпочтительную технику обновления состояния/прогресса. Возможно, облегчение - это использовать текст статуса браузера, но вы, конечно же, можете использовать область на странице для отображения анимации и/или статуса.

<script id="postLoadJavascript" type="text/javascript" ></script> 

<script type="text/javascript"> 
    var imagesLoaded = 0; 
    var totalImages = 100; 
    for(imagesLoaded = 0; imagesLoaded < totalImages; imagesLoaded++){ 
    window.status = 'Loading image ' + imagesLoaded + ' of ' totalImages + '...'; 
    document.write('<img src="image' + imagesLoaded +'.gif" /> '); 
    } 
    window.status = 'Loading additional javascript...'; 
    document.getElementById('postLoadJavascript').src = "theAdditionalJavascript.js" 
    window.status = 'Finished loading all.'; 

</script> 
+0

Еще один хороший, интригующий ответ. Возможно, это произойдет. Спасибо, благоговение. – 2009-10-19 06:34:07

+0

Выключает функцию предварительной загрузки dojo и выполняет загрузку javascript в тот же момент (разбор файла правил XML размером 200kB) заставляет изображение не вращаться. Я использовал часть вашего решения, но вернулся к использованию доджо с только javascript, который выгружал кэшированную версию JSON результата анализа синтаксиса правил xml, так как в IE загрузка каждого файла изображения по одному заняла слишком много времени. Firefox по-прежнему пытается загрузить все и отображает основной интерфейс, прежде чем все загружаются в любом случае, но все в порядке. Спасибо: D – 2009-11-08 17:18:36

1

попробуйте поместить это изображение в iframe. это то, что использовали разработчики gmail, с этой красной меткой «загрузка ...» в предыдущих версиях.

+0

Интересно, я подумал об этом, но просто уволился, когда увидел во время нераскрытых нагрузок, он также блокировал другие вкладки браузера. Однако есть вероятность. Завтра я сообщу свой результат. Спасибо, Цури. – 2009-10-19 06:25:12

0

Это ошибка с анимированными gif в IE. Переход от анимированного gif к использованию javascript для анимации вещи загрузчика ... (например, путем замены изображений или аналогичных данных)

+0

Я дам вам знать, работает ли это на нераскрытых нагрузках. Я предполагаю, что это не произойдет, но мы увидим :) Одна проблема, несколько ответов. Мне нравится получать творческие полезные ответы. Спасибо КристоферА. – 2009-10-19 06:38:14

Смежные вопросы