Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Снежинки
Soteric
сообщение 22.12.2009, 8:41
Сообщение #1


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3056
Пользователь №: 7.166



В IE8 снежинки загружают процессор на все 100.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 22.12.2009, 8:43
Сообщение #2


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



В прошлом (или позапрошлом?..) году тоже самое говорили..

Вообще, начать наверное стоит с того, что это все-таки проблема Internet Explorer..

PS: Написал свой алгоритм падения снежинок. Сейчас буду прикручивать.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 22.12.2009, 9:18
Сообщение #3


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Проблема кажется решена.

Мало того, что решена, так еще и снега стало в четыре раза больше..

Попутно исправлена проблема с тем, что в обозревателях с "быстрым" JavaScript - снежинки летали так, что становилось страшно - убить с такой скоростью можно и снежинкой..

Тестируйте (IMG:style_emoticons/default/smile.gif)

PS: Убрана поддержка MSIE6.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Soteric
сообщение 22.12.2009, 9:30
Сообщение #4


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3056
Пользователь №: 7.166



Проблема осталась. Добавилась другая. При загрузке страницы 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=p...p;t=19113"

При следующем обновлении подгружается тело страницы, при дальнейшем подвал. Ответить в тему невозможно совсем, дальше списка смайликов загрузка не уходит.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 22.12.2009, 9:43
Сообщение #5


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Одна из самых жутких ошибок, которую только можно придумать.. Исправлено.

Так же исправлена проблема с тем, что появлялась лишняя прокрутка страницы.

Кол-во снежинок уменьшил до 15. Если все плохо - можно в настройках форума установить любое значение или же просто отключить мод.

Теперь нравится снег ? (IMG:style_emoticons/default/smile.gif)

Вот в таких скриптах очень хорошо раскрывается производительность интернет-обозревателя... У меня в Google Chrome никаких тормозов нет даже при 150 снежинках..

PS: Заглянул на IBR... Мод был выложен на НГ 06-07, т.е. получается три года назад обсуждали как все плохо.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Soteric
сообщение 22.12.2009, 12:04
Сообщение #6


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3056
Пользователь №: 7.166



На IE8 загрузка ~60%, на Opera 10.10 ~40% (при прокрутке страницы скачет до 100%). Проблема с KB927917 на IE8 осталась, ответить в теме по-прежнему не удается.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 22.12.2009, 12:46
Сообщение #7


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6057
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Мозилла.
Снежинки радуют.)
Спасибо, Скууби)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 22.12.2009, 13:05
Сообщение #8


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



JS машина у ИЕ на порядок (реально в 10 раз. +- 10-20%) медленней чем мозилловская. Так что - все возможно. Щас код посмотрю - может можно чего придумать.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Beyonder
сообщение 22.12.2009, 16:40
Сообщение #9


*****

Journeyman
Сообщений: 303
Регистрация: 24.5.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 3.739



Скрипт в целом и так довольно эффективный. Но увы, тормозит.

Лучший вариант решения - не добавлять вообще обьекты снежинок и не двигать их по экрану. Сделать 20 контейнеров размером с весь экран. Каждый контейнер - 1 снежинка. Снежинку рисовать путём background и background-position. Правда не уверен можно-ли сделать чтобы нажатия на дивы мышкой они игнорировали пропуская под себя.
Фишка в том, что при каждом движении снежинки - брузер перерендеривает почти всю страницу проверяя на какие элементы теперь эта снежинка может повлиять. Если-же просто сдвигать background-position - cкорость рендеринга ОЧЕНЬ ускорится т.к. будет перерисовываться только 1 див, на остальные ему плевать.
Плюс, нету смысла дивы удалять. Когда снежинка доходит до низу - создавать её в том-же диве но сверху.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 22.12.2009, 17:02
Сообщение #10


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Да, с дивами тут зря сделали, согласен. Еще можно с таймаутами поиграться. Там вроде глупость при создании стнежинок.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Beyonder
сообщение 22.12.2009, 17:12
Сообщение #11


*****

Journeyman
Сообщений: 303
Регистрация: 24.5.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 3.739



Да таймауты это конечно плохо, но тормозов они особых тут не дают, т.к. включаются довольно редко. Самая тормознутая часть - движение снежинок по экрану.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 22.12.2009, 19:36
Сообщение #12


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



>>Проблема с KB927917 на IE8 осталась

Еще немного исправил. Несколько раз проверил - проблемы нету. Тестируйте.

>>Скрипт в целом и так довольно эффективный
Спасибо, старался. Однако если приглядываться к конкретным снежинкам, то видно, что траектория далеко не идеальна:
- Изначально все снежинки падают вертикально.
- Временами получаются рывки при смене угла падения.
Посоветуешь как исправить формулу, не написав туда какой-нибудь хитрый алгоритм с синусойдой (именно от него я отказался) ?

>>Лучший вариант решения - не добавлять вообще обьекты снежинок и не двигать их по экрану. Сделать 20 контейнеров размером с весь экран. Каждый контейнер - 1 снежинка. Снежинку рисовать путём background и background-position.
Верно мыслишь.

>>с дивами тут зря сделали
Вообще-то они тут без DIV'ов летают.

>>Еще можно с таймаутами поиграться
Можно, да не просто поиграться, а сделать вообще айс.. Думаю 10-15 fps должно быть достаточно, что даст понижение нагрузки в 2-3 раза.

>>Там вроде глупость при создании стнежинок.
Самую малость. Когда снежинка улетела за край экрана, я вместо того, чтобы поставить её на место - удаляю и рисую с нуля, ибо так код короче.
В любом случае - проблема не в этом.

>>Да таймауты это конечно плохо
Это где это у меня плохие таймауты?

>>Самая тормознутая часть - движение снежинок по экрану
Истинно так!


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 22.12.2009, 21:34
Сообщение #13


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Вот вам еще один код с ЕГи, где пасусь переодически...
Исходный код
<script LANGUAGE="JavaScript1.2">
//<!-- Begin
var no = 15; // количество рисунков
var speed = 30; // скорость движения;
var clientPC = navigator.userAgent.toLowerCase();
var is_ie_old = (clientPC.indexOf("msie") != -1&&clientPC.indexOf("opera") == -1&&clientPC.indexOf("msie 7.") == -1);
if (is_ie_old)
{
var snowflake = "/conference/images/sneg1.gif"; //адрес рисунка
}
else
{
var snowflake = "/conference/images/sneg1.png"; //адрес рисунка
}

var dx, xp, yp;
var am, stx, sty;
var i;
var doc_width;
var doc_height;
var deadin;
deadin=0;
window.onresize= message;
doc_width = document.body.offsetWidth;
this.documentHeight = (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
doc_height=this.documentHeight;


function message() {
doc_width = document.body.offsetWidth;
this.documentHeight = (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
doc_height=this.documentHeight;

}

function message2() {

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx[i] = 0;
xp[i] = Math.random()*(doc_width-80);
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
}





}
function message3(i) {
yp[i]=doc_height+50;
deadin=deadin+1;
document.getElementById('plt').innerHTML='<font color=\"#FF0000\">Поймано снежинок :' + deadin+ '&nbsp;&nbsp; &nbsp;</font> ';
}

for (i = 0; i < no; ++ i) {
document.write("<div id=\"dot"+ i +"\"style='position:absolute;left:-25px;top:-25px;' onclick='message3("+ i +")' ");

document.write("><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
}

function snow() {


for (i = 0; i < no; ++ i) {
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width - am[i]-50);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
}
dx[i] += stx[i];
document.getElementById("dot"+i).style.top = yp[i] + "px";
document.getElementById("dot"+i).style.left = (xp[i] + am[i]*Math.sin(dx[i])) + "px";
}
setTimeout("snow()", speed);
}

setTimeout("message()", 1000);
setTimeout("message2()", 1100);
setTimeout("snow()", 1200);

// End -->

</script>


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 22.12.2009, 21:47
Сообщение #14


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Нам чужого кода не нужно.

Мы свой код напишем, благо не дураки - умеем писать код.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Soteric
сообщение 23.12.2009, 9:09
Сообщение #15


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3056
Пользователь №: 7.166



Честно говоря не почувствовал изменений, но после серии обновлений страницы смог все-таки ответить в тему. Сломали форум, злодеи (IMG:style_emoticons/default/smile.gif) Вызывайте теперь МЧС, пусть снег чистят (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 23.12.2009, 11:53
Сообщение #16


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Через IE Maxthron и K-Melon не заходит , выдает ошибку сижу только через Fox
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 23.12.2009, 14:05
Сообщение #17


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



А вы заметили что вдруг стало мало <вырезано анти-матом>ских вопросов? Может не надо ничего менять?


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 23.12.2009, 21:42
Сообщение #18


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Полагаю все-таки надо.

Поставлю для IE, чтобы снежинки включались не по domready, а по onload.. Решит проблему.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 24.12.2009, 17:51
Сообщение #19


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Извиняюсь за задержку.

Проблему с Internet Explorer в очередной раз решил.. Вообще сложно решать проблему, которой у тебя нету..

Далее буду работать над снижением FPS, что понизит нагрузку.


--------------------
Discord: tatikom
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 24.12.2009, 18:51
Сообщение #20


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Все нормально работает в IE , Maxthrone , K-meleon и Foxe
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.4.2024, 23:26
Designed by Nickostyle