Оптимизация работы галереи
Доброго времени суток всем. Сделал движущуюся галерею с помощью jquery. Вроде бы все устраивает, но есть пару моментов.
1) Иногда немного притормаживает. А если очень часто кликать по кнопке прокрутки, то через какое-то время рисунки вообще исчезают. Потом появляются снова, когда галерея "отвиснет". 2) на медленных интернетах работает просто ужасно. Из-за того что рисунки не успевают подгрузится до начала работы скрипта, происходит полный беспредел: рисунки накладываются друг на друга и т.п. Посмотреть на галерею и код можно по адресу http://furnistek.by/shtory/. Буду признателен за советы, как оптимизировать работу галереи. |
1) делай прелоад изображений и показывай прокрутку, только после полной загрузки.
2) оптимизируй код, наверно ты слишком накрутил с циклами. 3) открой firebug выбери одну из картинок и смотри как и когда изменяется свойство left |
Спасибо, вечером попробую разобраться с прелоадами
|
Ну прелоад вроде сделал, только вот не пойму, помогло или нет) Дома работает нормально, на работе буду смотреть, там у меня инет тупой)
Но уже есть вопросы - как узнать, что прошла полная загрузка? Это к тому, что советуют начинать прокрутку только после полной загрузки. |
у объекта img есть события onload и onerror.
|
RaskolnikOFF, кнопки влево и вправо должны действовать наоборот. Стрелка показывает вправо, при нажатии галерея должна ползти влево.
ps: здесь нечего оптимизировать, скрипт еще не дописан. У вас кривая логика скрипта. Сначала напишите скрипт целиком, потом оптимизируйте. Через 10 сек. работы с программой она ломается. |
Gozar По поводу кнопок вопрос спорный, но поменять не проблема. А вот по поводу недописан - не согласен. У меня дома скрипт работает часами без проблем. Почему он ломается у вас через 10 сек, не знаю. Если не трудно, укажите в коде, где именно он не дописан. Я лично считаю, что проблема именно в его "неоптимизированности"
|
RaskolnikOFF,
нет вопрос не спорный, у вас нелогично, а значит криво, вы не первый на этом форуме с такими кнопками, тыкают по стрелке для того чтобы увидеть новое, а не получить пинок вдогонку виденным. Кроме ie у вас скрипт везде работает не правильно, криво. FF, Opera, Chrome. |
Gozar
В чем неправильность работы скрипта, я не понимаю? Напишите конкретней. По задумке галерея должна бесконечно крутиться в замкнутом цикле, пока на нее не наведешь. По нажатию на стрелки - двигаться в определенную сторону. Что из этого не работает у Вас? IE - единственный браузер, в котором я не проверял скрипт) Странно, что у Вас именно в нем он работает правильно) По поводу стрелок в принципе согласен. Вы не первый, кто это говорит. Но другие люди говорили, что все хорошо. Имхо, это не принципиально. |
RaskolnikOFF, если вы хотите быть упрямым, мне плевать, пусть об этом вам скажет кто-нибудь другой. Не умеете тестировать скрипты, на это мне тоже плевать.
|
Gozar
Мне упрямым смысла быть нету. Я помощи ищу, а не правоту свою стремлюсь доказать. Если в логике кода есть ошибка, то укажите на нее. Может вы имеете ввиду кусок с прелоадом? Там я действительно поначалу не разобрался и не дописал немного. Но он никак по идее не должен влиять на работу остальной части кода. Можете его проигнорировать. А можете посоветовать, что там править надо. Или ссылкой поделиться, как ентой штукой пользоваться правильно, а то что-то гугл не шибко помогает. Peace, bro. |
RaskolnikOFF, кликните 10-15 раз на стрелку вправо/влево.
|
Если быстро кликать, рисунки исчезают.Через некоторое время они появляются снова. Я это знал. Вот поэтому и встал вопрос оптимизации. Складывается чувство, что браузер просто не успевает отрисовывать их. Или что то вроде. Может просто сделать как в IE, чтобы на слишком быстрые нажатия скрипт просто не реагировал. Т.е. срабатывал раз в полсекунды например?
|
RaskolnikOFF,
У вас кривой код, можете хоть на тумбочку встать и кричать что это оптимизация, но это ничего не изменит. Вам нечего оптимизировать у вас код не дописан, не написан или криво написан, выбирайте одно из трех определений какое больше нравиться. ps: а вообще это ГОВНОКОД, т.к. криво написан с применением jquery(не в обиду будет сказано этой маленькой либе). |
Gozar
Откуда ему быть ровным, если я неделю назад первый раз jquery увидел? А Вы бы вместо "комплиментов" моему коду дали бы хоть один дельный совет. А то "пальцы гнуть" каждый может. |
Цитата:
jquery нужна для того чтобы писать кросс-браузерный код, а не быстро написать какой-нибудь. |
А конкретней? Я же уже говорил, что у меня работает. Кликал в опере 18 раз, все норм было. Вы еще не сказали ничего того, чтобы я не знал. Судя по карме у Вас достаточно опыта, чтобы сказать что-нибудь по существу, а не просто: "Все неправильно, сделай правильно". Если бы для меня ошибки были очевидны, я бы советов не спрашивал.
|
Цитата:
|
RaskolnikOFF, что бы не происходил глюк прокрутки, после клика на стрелку отключайте обработчик onclick и только после того, как прокрутка закончится включайте его обратно. Можете посмотреть как это сделал я http://jsprime.fuzaylov.net/preview/PhotoLine/
|
HelpeR,
с чего вы взяли что вы сделали хорошо, я далеко ходить не буду: photos : ['1.jpg','2.jpg','3.jpg'], // названия рисунков ленты big_photos : ['1b.jpg','2b.jpg','3b.jpg'], // название больших рисунков pic_dir : '/img/', // директория хранения рисунков titles : ['Описание1','Описание2','Описание3'], //Описание к фотографиям так делать неудобно, потому что если идет выборка из базы, то нужно сложить аж три массива чтобы подставить потом в ленту, я молчу про расширяемость. Гораздо проще кормить в ленту объект, а не клепать массивы превращая хорошую идею в говно. И определитесь наконец какой у вас стиль написания переменных: такой: pic_padding такой: paddingBot или такой: Blackout а то вот это в js выглядит как порнография: Blackout_src |
Часовой пояс GMT +3, время: 21:02. |