В IE8 снежинки загружают процессор на все 100.
В прошлом (или позапрошлом?..) году тоже самое говорили..
Вообще, начать наверное стоит с того, что это все-таки проблема Internet Explorer..
PS: Написал свой алгоритм падения снежинок. Сейчас буду прикручивать.
Проблема кажется решена.
Мало того, что решена, так еще и снега стало в четыре раза больше..
Попутно исправлена проблема с тем, что в обозревателях с "быстрым" JavaScript - снежинки летали так, что становилось страшно - убить с такой скоростью можно и снежинкой..
Тестируйте
PS: Убрана поддержка MSIE6.
Проблема осталась. Добавилась другая. При загрузке страницы IE8 загружает только шапку, выдает следующую ошибку:
"Сведения об ошибке на веб-странице
Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
штамп времени: Tue, 22 Dec 2009 06:26:30 UTC
Сообщение: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
Строка: 0
Символ: 0
Код: 0
URI-код: https://forum.uokit.com/index.php?act=post&do=reply_post&f=98&t=19113"
При следующем обновлении подгружается тело страницы, при дальнейшем подвал. Ответить в тему невозможно совсем, дальше списка смайликов загрузка не уходит.
Одна из самых жутких ошибок, которую только можно придумать.. Исправлено.
Так же исправлена проблема с тем, что появлялась лишняя прокрутка страницы.
Кол-во снежинок уменьшил до 15. Если все плохо - можно в настройках форума установить любое значение или же просто отключить мод.
Теперь нравится снег ?
Вот в таких скриптах очень хорошо раскрывается производительность интернет-обозревателя... У меня в Google Chrome никаких тормозов нет даже при 150 снежинках..
PS: Заглянул на IBR... Мод был выложен на НГ 06-07, т.е. получается три года назад обсуждали как все плохо.
На IE8 загрузка ~60%, на Opera 10.10 ~40% (при прокрутке страницы скачет до 100%). Проблема с KB927917 на IE8 осталась, ответить в теме по-прежнему не удается.
Мозилла.
Снежинки радуют.)
Спасибо, Скууби)
JS машина у ИЕ на порядок (реально в 10 раз. +- 10-20%) медленней чем мозилловская. Так что - все возможно. Щас код посмотрю - может можно чего придумать.
Скрипт в целом и так довольно эффективный. Но увы, тормозит.
Лучший вариант решения - не добавлять вообще обьекты снежинок и не двигать их по экрану. Сделать 20 контейнеров размером с весь экран. Каждый контейнер - 1 снежинка. Снежинку рисовать путём background и background-position. Правда не уверен можно-ли сделать чтобы нажатия на дивы мышкой они игнорировали пропуская под себя.
Фишка в том, что при каждом движении снежинки - брузер перерендеривает почти всю страницу проверяя на какие элементы теперь эта снежинка может повлиять. Если-же просто сдвигать background-position - cкорость рендеринга ОЧЕНЬ ускорится т.к. будет перерисовываться только 1 див, на остальные ему плевать.
Плюс, нету смысла дивы удалять. Когда снежинка доходит до низу - создавать её в том-же диве но сверху.
Да, с дивами тут зря сделали, согласен. Еще можно с таймаутами поиграться. Там вроде глупость при создании стнежинок.
Да таймауты это конечно плохо, но тормозов они особых тут не дают, т.к. включаются довольно редко. Самая тормознутая часть - движение снежинок по экрану.
>>Проблема с KB927917 на IE8 осталась
Еще немного исправил. Несколько раз проверил - проблемы нету. Тестируйте.
>>Скрипт в целом и так довольно эффективный
Спасибо, старался. Однако если приглядываться к конкретным снежинкам, то видно, что траектория далеко не идеальна:
- Изначально все снежинки падают вертикально.
- Временами получаются рывки при смене угла падения.
Посоветуешь как исправить формулу, не написав туда какой-нибудь хитрый алгоритм с синусойдой (именно от него я отказался) ?
>>Лучший вариант решения - не добавлять вообще обьекты снежинок и не двигать их по экрану. Сделать 20 контейнеров размером с весь экран. Каждый контейнер - 1 снежинка. Снежинку рисовать путём background и background-position.
Верно мыслишь.
>>с дивами тут зря сделали
Вообще-то они тут без DIV'ов летают.
>>Еще можно с таймаутами поиграться
Можно, да не просто поиграться, а сделать вообще айс.. Думаю 10-15 fps должно быть достаточно, что даст понижение нагрузки в 2-3 раза.
>>Там вроде глупость при создании стнежинок.
Самую малость. Когда снежинка улетела за край экрана, я вместо того, чтобы поставить её на место - удаляю и рисую с нуля, ибо так код короче.
В любом случае - проблема не в этом.
>>Да таймауты это конечно плохо
Это где это у меня плохие таймауты?
>>Самая тормознутая часть - движение снежинок по экрану
Истинно так!
Вот вам еще один код с ЕГи, где пасусь переодически...
Нам чужого кода не нужно.
Мы свой код напишем, благо не дураки - умеем писать код.
Честно говоря не почувствовал изменений, но после серии обновлений страницы смог все-таки ответить в тему. Сломали форум, злодеи Вызывайте теперь МЧС, пусть снег чистят
Через IE Maxthron и K-Melon не заходит , выдает ошибку сижу только через Fox
А вы заметили что вдруг стало мало <вырезано анти-матом>ских вопросов? Может не надо ничего менять?
Полагаю все-таки надо.
Поставлю для IE, чтобы снежинки включались не по domready, а по onload.. Решит проблему.
Извиняюсь за задержку.
Проблему с Internet Explorer в очередной раз решил.. Вообще сложно решать проблему, которой у тебя нету..
Далее буду работать над снижением FPS, что понизит нагрузку.
Все нормально работает в IE , Maxthrone , K-meleon и Foxe
Ошибка на IE8 пропала. Загрузка CPU 50%, при скроллинге скачет до 100%. На опере 25%. В принципе стало терпимо.
IE: CPU 01-08
Opera: CPU 01-05
FFox: CPU 03-06
Да ну, бред, инагда CPU прыгаит да 100%, асобина кагда болише сылок с уософта. Скока ети снишки та будут?
вап зе бест!
Аист
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)