Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

Разработка » Javascript анимация - Медленная перерисовка страницы » 13-12-2010 11:46:52

уфф. Остановился на комбинированном варианте: Opera, Chrome, IE6 и 7 грузят начальный вариант, а Firefox и IE8 - iframe (спасибо Lynn навел на мысль).
[spoiler]function anistart() {
    var cont=document.getElementById('anicc');
    if (cont && !(navigator.userAgent.toLowerCase().indexOf("firefox") != -1)
        && !(navigator.userAgent.toLowerCase().indexOf("msie 8") != -1)) {
       
        var nar=[[],[],[]]; /* id, новость, обновление */
        var tmp='';
        cont.innerHTML='<div id="anic"><pre id="ani"></pre></div><img id="anifgl" src="/img/anifg_l.png" alt="" /><img id="anifgr" src="/img/anifg_r.png" alt="" />';
        var el=cont.firstChild.firstChild; /* переходим к элементу ani */
        var w=-1; /* длина части в px, которая должна уйти влево для нового витка */
        var nl=0;

        function newschk (xmldoc) {
            var news = xmldoc.getElementsByTagName('item');    /* получаем список новостей .documentElement */
            var id,p,fl;
            var narid=[];
            var s={'Jan':'янв','Feb':'фев','Mar':'мар','Apr':'апр','May':'май','J

Разработка » Javascript анимация - Медленная перерисовка страницы » 09-12-2010 17:39:19

Мда, прочитал. В качестве решения предлагается забить.
Попробовал ставить строку в iframe. Ага. Опера и Хром как обычно показывают, ФФ как обычно нет.

скрытый текст
var cont=document.getElementById('anicc');
        cont.innerHTML='';
    var tmp=document.createElement('div');
        tmp.innerHTML='<iframe id="anic" name="anic" scrolling="no"></iframe>';
        cont.appendChild(tmp.firstChild);

        cont=cont.firstChild.contentWindow.document /* (или contentDocument) */;
    var el=cont.getElementsByTagName('head')[0];
        tmp.innerHTML='<link rel="stylesheet" type="text/css" href="css/ani.css" />';
        el.appendChild(tmp.firstChild);
       
        el=cont.getElementsByTagName('body')[0];
        tmp.innerHTML='<div id="ani">test</div>';
        el.appendChild(tmp.firstChild);

        el=el.firstChild; /* переходим к элементу ani */
    var w=-1; /* длинна части в px, которая должна уйти влево для нового витка */
    var nl=0;


Когда же в Гекко будут условные комментарии, как в IE?! Хотя здесь и они не помогут.

Разработка » Javascript анимация - Медленная перерисовка страницы » 08-12-2010 15:38:09

okkamas_knife пишет

вполне работоспособный и не тормозящий скрипт,который можно подправить под свои нужды.

Угу, этот "не тормозящий" скрипт грузит мой проц на 100% (с учетом других задач - ~80). А странице он конечно же тормозит сильнее, что впрочем не удивительно - он работает точно также как и мой, только использует дополнительно ЖКвери, а значит работает медленнее.

Lynn пишет

Вообще тормозит скорее не скрипт а перерисовка.

Ага :) И тормозит она в частности из-за того, что ФФ перерисовывает всю область экрана, а не только изменившуюся.

Lynn пишет

Для начала можно увеличить интервал отрисовки с 50 до 150мс, например

Можно вообще строку убрать) Если бы меня устроили настолько дискретные перемещения, я бы не спрашивал.

Lynn пишет

ссылка для чтения: http://chikuyonok.ru/2010/11/optimization-story/

Спасибо, изучу.

Разработка » Javascript анимация - Медленная перерисовка страницы » 08-12-2010 14:36:48

okkamas_knife пишет

1) большинством браузеров поддерживается,какой смысл изгаляться?
2)я конечно не спец по жабоскрипту но даже мне видно что скрипт уж больно мудрёный и главное куча регекспов которые как известно тормозят, вобщем простой поиск выдал четвертой ссылкой
http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
вполне работоспособный и не тормозящий скрипт,который можно подправить под свои нужды.

1) При чем здесь браузеры вообще?
2) И пост вы тоже видать не читали, потому что там очень четко и понятно написано, что повторяются (т.е. тормозят) только две строчки кода, в которых никаких регулярок нет (собственно их там всего две штуки).
Ну и простым поиском я вполне умею пользоваться, раз написал код в котором вы с ходу не смогли разобраться, хотя там 70 строк и комментарии на русском)
А на счет ЖКвари - я пробовал это

Разработка » Javascript анимация - Медленная перерисовка страницы » 08-12-2010 11:38:57

okkamas_knife пишет

RedElf
а чем тэг marquee не устраивает?

1) Не валидный
2) Не входит в обсуждение данной темы:rolleyes:

Разработка » Javascript анимация - Медленная перерисовка страницы » 08-12-2010 10:43:00

Есть скрипт бегущей строки (ну нужен) в которой "бегут" html теги со стилями.
Это все работает. Но если в Опере, Хроме, IE6(!) и IE7 это работает с нормальной (удовлетворительной) скоростью, то в Firefox 3.6 и IE8 скрипт выдает не FPS, а SPF, т.е. дико торомзит.
Я заоптимиризовал всё что можно, хотя это мало (никак не) сказалось на скорости работы.
Может есть какое-то интересное решение для FF? Или он как-то особенно понимает некоторые команды JS?
Я понимаю, что проблема может быть решена в FF4, но ждать пока все с 3.6 перейдут на него не получается.

Собсвтенно скрипт:
[spoiler]function anistart() {
    var nar=[[],[],[]];
    var tmp='';
    var el=document.getElementById('anicc'); /* Контейнер, в который мы записываем содержимое после загрузки страницы. В т.ч. и перемещающийся блок ani */
    el.innerHTML='<div id="anic"><pre id="ani"></pre></div><img id="anifgl" src="/img/anifg_l.png" alt="" /><img id="anifgr" src="/img/anifg_r.png" alt="" />';
    var el=el.firstChild.firs

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]