Javascript «imageflow» IE не загружается, медленно в других браузерах

#javascript #performance #internet-explorer #imageflow

#javascript #Производительность #internet-explorer #поток изображений

Вопрос:

Я использую скрипт javascript под названием ImageFlow. Он отлично работает в FF / Chrome, однако очень медленный и зависший.

В IE (9,8,7) он просто отказывается загружаться вообще. Проблем с JS нет, и я не могу опубликовать код, так как его слишком много, и я также не кодировал ни один сайт, поэтому не знаю, что вызвало сбой.

Демонстрационный сайт являетсяhttp://crofts.propertylogic.net а JS для потока изображений можно найти по адресуhttp://crofts.propertylogic.net/coverflow/imageflow.js . Эффект предназначен для вставки в белое поле в середине страницы с членами команды, как вы можете видеть в Chrome / ff. Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово.

Ответ №1:

Я не могу исправить код для вас, но я могу рассказать вам, почему он не работает в IE9. Событие инициализации, которое обнаруживает div ‘myImageFlow’, происходит до того, как этот div был прочитан в DOM. Я считаю, что это из-за того, как плагин ImageFlow имитирует событие DOMContentLoaded для IE. Плагин ImageFlow использует DOMContentLoaded плагин, который не обновлялся с мая ’08. Я бы поспорил, что библиотека устарела, и в результате она нарушает поток изображений, который также выглядит довольно устаревшим.

Я бы честно посоветовал вам поискать более современный плагин. Если это не помогает, попробуйте поработать с разделом DOMContentLoaded, чтобы посмотреть, сможете ли вы выяснить, почему он не задерживается достаточно долго в IE9 (используйте debugger F12).

Комментарии:

1. Я думаю, что jcarousel может быть хорошим выбором, если OP работает с новым маршрутом плагина. Я несколько раз проделывал с ним почти один и тот же ротатор.

2. Хорошо замечено, разберусь в этом. Спасибо

Ответ №2:

Если вы не кодировали какой-либо сайт, скорее всего, вы также не устанавливали imageflow на сайт. Но установка была рассмотрена, верно? Или, может быть, нет!

http://finnrudolph.de/ImageFlow/Installation

 <div id="unique_name" class="imageflow"> 
    <img src="dir/image_1.jpg" longdesc="URL_1" width="w_1" height="h_1" alt="Text_1" />
</div>
  

Параметры ширины и высоты изображения (w_x и h_x) должны быть установлены в XHTML для полной совместимости с Internet Explorer. Извините за
эта дополнительная нагрузка на работу — каждый браузер, кроме Microsoft, поддерживает Интернет
Explorer может извлекать правильные размеры изображения с помощью JavaScript!

Это означает, что вам нужно будет вставить размеры изображения в xhtml на стороне сервера для ie, я думаю. Это делается в настоящее время?

Комментарии:

1. Спасибо @octopi, но, похоже, это не работает 🙁 посмотрите сами. Еще раз спасибо

2. Да, я изучаю это, пока мы говорим, я посмотрю глубже.

Ответ №3:

Проверил веб-сайт на IE8 и, похоже, отлично работает с анимацией, только то, что изображения выглядят растянутыми по вертикали.

Комментарии:

1. Спасибо.. у меня это работало несколько раз, но затем обновление страницы вызывает проблему.

2. Да, я также столкнулся с той же проблемой, при переходе на домашнюю страницу изображения вообще не загружаются. проблема специфична для IE8, а не для Chrome или IE6

3. Странно, что IE6 будет работать. Также обратите внимание, что эта проблема возникла в IE9, но не в IE10pp, спасибо, что ответили мне @DP

Ответ №4:

вы можете исправить это с помощью jQuery — все верно, проблема в обработчике dom.

 $(document).ready() is the key

$(document).ready(function()
{
    var circular_3 = new ImageFlow();
    circular_3.init({ ImageFlowID: 'imageflow1',
        //circular: true,
        reflections: false,
        reflectionP: 0.4,
        slider: false,
        captions: false,
        opacity: true,
        xStep: 250,
        imageFocusM: 1.5,
        startID: 2
    });
  

Ответ №5:

Я знаю, что немного поздно отвечать на этот вопрос. InvisibleBacon верен в том смысле, что код DOMReady не изменялся с 2008 года, но я проверил код DOMReady, и он работает для IE с 5 по 11, Firefox, Chrome, Mobil Chrome, Safari и Mobile Safari. Я не проверял код с Opera.

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